Skip to content

Bank SEO strategy

YMYL and regulated

Rate tables change daily and every one is an advertised claim

Written by Eugene SuslovLast reviewed 29 August 2026No affiliate links
Sector
Legal and financial
Model
Multi-location, National service
Competition
Brutal
Time to results
9 to 18 months
Typical monthly
$5,000 to $20,000

Key takeaways

  1. 1Your rate table is a regulated advertisement that updates itself. It is the highest-intent content on the site, it is fed by a system marketing does not control, and every rendering of it carries a disclosure obligation.
  2. 2A federal regulator has told you which pages of your website must display which element. The FDIC rule names the home page, the login pages and the first page of account opening, and its compliance date has moved five times.
  3. 3Regulation DD contains an internal-linking requirement. An electronic advertisement carrying a triggering term has to take the reader directly to the additional information, which is a search problem as much as a compliance one.
  4. 4The national comparison sites will always beat you on the rate query and cannot touch the local one. Nobody at Bankrate can write about lending against agricultural land in your county, and that is where a community institution wins.
  5. 5For a credit union the single most valuable page is the one explaining who is allowed to join, and it is usually three sentences long.

SEO for banks has an unusual problem at the centre of it. The most valuable content on the website is a table of numbers that changes without anybody in marketing touching it, and every version of it that renders is a regulated advertisement.

That single fact reorganises everything. The rate table is what the highest-intent visitors came for, it is fed by the core banking system or a treasury spreadsheet, and it carries disclosure obligations that a marketing team usually discovers after publishing.

So a bank SEO strategy is unusually dependent on plumbing. If the number arrives in the browser after the page has loaded, a crawler and an answer engine both see an empty table, and the page cannot rank for the query it was built for.

Around that sits a competitive picture that will not change. Rate aggregators and personal finance publishers own the national comparison queries with editorial teams and authority no single institution will match, and several of them republish your own numbers.

What they cannot do is anything local. A national publisher cannot economically write about lending against agricultural land in one county, or about which of two state programmes a first-time buyer there qualifies for.

And there is one more constraint that no other industry in this directory has. A federal regulator has specified which pages of your website must carry which element, and the deadline for complying has moved five separate times.

Who already ranks in banks and credit unions

Search a rate term, then search the same product with your county attached, and the two results pages share almost nothing. Every bank SEO plan worth funding starts from that gap rather than from the volume, because the volume is concentrated where nobody local can win.

What is on the results page

  • Rate comparison tables from aggregators occupying the top of every deposit query
  • Personal finance publishers holding the explanatory and best-of results
  • A heavy paid block on lending terms, among the most expensive keywords anywhere
  • Local pack on branch, ATM and near-me queries
  • The regulator's own institution directory ranking on brand queries
  • Questions in the People Also Ask block about eligibility, fees and how an account works
  • Support and how-to queries answered by third-party sites rather than by the bank
  • Almost nothing on county-level lending, local programmes and membership eligibility
  • Bankrate and NerdWallet

    bankrate.com

    They own the national rate and best-of queries with editorial teams, review methodologies and authority no single institution will match. Several of them also list your products, so the practical question is whether your listing is accurate rather than whether you can outrank the page it sits on.

  • DepositAccounts and the rate aggregators

    depositaccounts.comClaim it

    They collect and republish deposit rates, frequently ranking above the institution's own page for its own products. Claim the profile and keep the figures current, because a stale rate on an aggregator is a wrong advertised number attached to your name that you did not publish.

  • FDIC BankFind and the NCUA directory

    fdic.gov

    The regulator publishes the authoritative record of every insured institution, including the certificate or charter number, the history and every branch. It ranks on brand queries and it is the entity data other sources reconcile against, so it is worth making sure your own site agrees with it.

  • Google Business Profile

    google.comClaim it

    The branch network is the biggest local asset most institutions have and the most inconsistently managed. One profile per branch with correct hours, drive-through and ATM details, lobby versus drive-up hours stated separately, and a link to that branch's own page rather than to the home page.

  • The mortgage marketplaces

    zillow.comClaim it

    Rate tables and lender directories intercept most of the mortgage journey, and participation is usually paid. Worth treating as an advertising channel measured on cost per funded loan, and worth keeping accurate either way, because the quoted terms are yours.

  • Your digital banking vendor

    the vendor's hosted domain

    The gatekeeper nobody counts as one, because you pay them. Online banking, and often account opening, live on a vendor domain, which splits the brand, hides the funnel, and puts the login page that a regulator now names in signage rules outside your own content management system.

  • Reddit and the consumer forums

    reddit.com

    Threads asking whether an institution is any good, and long discussions of fees and holds, rank on brand-adjacent queries. In banking these are read carefully, because the complaint is usually specific and checkable. You cannot manage them and you can answer the underlying question on your own fees page.

  • State and federal programme directories

    sba.govClaim it

    Lender directories for guaranteed loan programmes, state housing finance agency lender lists and agricultural programme registries all rank and all convert, because the borrower has been sent there by a rule. Being listed and correct is free and is frequently the single best-converting citation a community institution owns.

Four rungs of rate-page maturity: a rate table alone, a rate table with its required disclosure attached, an explainer answering the question the rate implies, and a local decision guide naming county programmes.
Each rung requires the one below it. Most institutions are on the first and are writing content for the fourth.

What people actually search

One cluster below is unwinnable and enormous, and four are winnable and quiet. The useful discipline is to spend nothing on the first and to notice that the fourth and fifth carry more brand volume than anything the marketing team has ever written for.

National rate shopping

Commercial investigation

best high yield savings rates

The page that wins it: An accurate listing on the aggregators, not a page of your own

Owned by publishers whose product is the comparison. The realistic goal is to be listed correctly on the pages that rank rather than to compete with them, which is a distribution job rather than a content one.

Rate plus a place

Commercial, local

CD rates [city]

The page that wins it: A product page with a server-rendered rate and a local angle

The national aggregators serve this badly because they have nothing local to say. It is the one rate query a community institution can genuinely take, and it needs the number to be in the HTML.

Branch and ATM

Local, immediate

bank near me open saturday

The page that wins it: A page per branch with lobby and drive-up hours separately

High volume, entirely practical, and usually answered by a location finder that generates no indexable page. Saturday and holiday hours are the specific thing people search for and the specific thing that is wrong.

Membership and eligibility

Navigational, decisive

who can join [credit union]

The page that wins it: A plain page listing every route to eligibility

For a credit union this is the highest-converting page on the site and it is normally three sentences buried in a footer. Everybody who searches it is trying to become a member.

Local lending

Commercial

[loan type] lender [county]

The page that wins it: A page per programme with the local terms and the local officer

Construction, agricultural, small business and specialist local lending. A national publisher cannot afford to write these and a community institution already knows the answers.

Product explanation

Informational

how does a [product] work

The page that wins it: A state-specific explainer rather than a generic one

The publishers own the generic version outright. The version that turns on your state's rules, taxes or programmes is both more useful and completely unoccupied.

Support and how-to

Navigational, existing customers

[bank] routing number

The page that wins it: A real support page per task, indexable and not behind login

The largest cluster most institutions own and the one nobody measures, because it is all branded. When third-party sites answer it, they intercept your own customers on your own brand.

Business banking

Commercial

business checking [city]

The page that wins it: A page per business product with the fee schedule visible

Higher value per relationship, decided on service and on lending appetite rather than on rate, and the one place where a named commercial banker on the page genuinely changes the outcome.

What the rules change

The heaviest compliance section in this directory, and unusually literal: three of the four rules below govern what must appear on specific pages rather than how you may describe things. Work with your own compliance function; none of this is legal advice.

1

A regulator has specified which pages must carry the sign

FDIC official signs and advertising requirements at 12 CFR part 328, whose latest final rule took effect 2 March 2026 with a compliance date of 1 April 2027

What it means

The rule requires the FDIC official digital sign on the home page, on login pages, and on the first page where a customer begins opening a deposit account, with separate signage on pages primarily dedicated to non-deposit products, displayed clearly, continuously and conspicuously. The compliance date has moved five times, from 1 January 2025 to 1 May 2025, then March 2026, then January 2027, then April 2027.

So do this

Treat it as a template requirement rather than a page requirement, because login and account opening frequently live on a vendor's domain and outside your content management system. Get the vendor's commitment in writing with a date, and keep your own record of which pages carry which element, since the deadline has moved often enough that nobody will remember.

2

Regulation DD writes a linking requirement

Truth in Savings, Regulation DD, at 12 CFR 1030.8, together with its official commentary on electronic advertisements

What it means

A rate of return must be stated as an annual percentage yield using that term. Where an electronic advertisement displays a triggering term such as a bonus or an annual percentage yield, it must clearly refer the reader to where the additional required information begins, for example through a link that takes them directly to it. A bonus means consideration worth more than ten dollars.

So do this

Build the disclosure as part of the rate component rather than as a page it links to, so it travels wherever the number travels: the product page, the home page module, the comparison table and any feed. Then check that the link actually lands on the disclosure rather than on a page containing it somewhere below the fold.

3

Naming a payment on a lending page triggers the rest

Truth in Lending, Regulation Z, at 12 CFR 1026.24, on advertising closed-end credit

What it means

Stating a rate requires the annual percentage rate to be stated using that term. Naming a triggering term brings the additional disclosures with it, and the triggering terms are the amount of a down payment, the number of payments, the period of repayment, the amount of any payment and the amount of any finance charge. Marketing pages reach these thresholds constantly with an illustrative monthly payment.

So do this

Decide deliberately whether a lending page will name a payment example at all, because it is a choice with a disclosure attached rather than a copywriting flourish. Where it does, keep the disclosure with the example in the same component, and review any calculator that outputs a figure, because an interactive result is still a statement.

4

Credit unions have their own version, and it names your home page

NCUA accuracy of advertising and notice of insured status, 12 CFR part 740, in particular the requirements for the official advertising statement

What it means

A federally insured credit union must include the official advertising statement in its advertisements, including on its main internet page, in one of the permitted forms such as federally insured by NCUA. Part 740 also governs accuracy generally, and separately a credit union's statements about who may join describe a field of membership approved by a regulator.

So do this

Put the statement in the site template rather than on individual pages, and audit for it after every redesign, because it is the single most commonly lost element in a rebuild. Then write the eligibility page properly, listing every route to membership, because it is both a compliance statement and the highest-converting page a credit union has.

A timeline of the FDIC signage compliance date: April 2024 effective, then full compliance pushed from January 2025 to May 2025, to March 2026, to January 2027, and finally to April 2027 under a new final rule.
Five movements is why nobody is holding this date in their head, and why the map needs a written owner.

Proving expertise

Trust here is institutional rather than personal, and most of the proof already exists in a regulator's database. The gap is that almost none of it is on the institution's own website.

  • The FDIC certificate number or the NCUA charter number, published
  • The year the institution was founded and by whom
  • The insured status statement, in the template rather than on one page
  • Named lenders and branch managers, with the products they handle
  • Complete branch data: lobby hours, drive-up hours, ATM, safe deposit, holidays
  • The fee schedule, as a page, current and dated
  • Which state and federal lending programmes you are an approved participant in
  • Community reinvestment activity described concretely rather than in adjectives
  • A clear route to a complaint, including the regulator's own

How to build a bank SEO strategy

Twelve months, and the first quarter is mostly engineering. A bank SEO strategy that starts with content while the rate table is injected after page load is writing pages that a crawler will see as empty, which is a slow and expensive way to learn about rendering.

  1. 1

    Weeks 1 to 6

    Make the numbers visible

    • Check whether rates and fees appear in the server-rendered HTML
    • Move the rate component to render on the server, with the disclosure attached
    • Publish the fee schedule as a page rather than a PDF
    • Map which pages carry which required signage element, and who owns each template
    • Get a written date from the digital banking vendor for the pages they control
    • Publish the certificate or charter number and the insured status statement

    You end up with
    The most valuable content on the site readable by a machine, with its disclosure attached

  2. 2

    Weeks 6 to 16

    Take the local ground

    • Build a real page per branch with lobby and drive-up hours separately
    • Claim and correct every branch profile, linked to its own page
    • Write the membership eligibility page listing every route, if a credit union
    • Write a page per local lending programme with the terms and the officer named
    • Correct your listings on the rate aggregators
    • Get listed and correct on every programme lender directory you qualify for

    You end up with
    Coverage of the queries a national publisher cannot economically answer

  3. 3

    Weeks 14 to 30

    Answer your own customers

    • Build an indexable support page per common task, outside the login
    • Write the state-specific versions of the product explainers
    • Build the business banking pages with fee schedules and named bankers
    • Add institution, account and loan structured data
    • Review every calculator output against the advertising disclosure rules
    • Consolidate anything the vendor domain is holding that could sit on yours

    You end up with
    A site that serves existing customers as well as it courts new ones

  4. 4

    Weeks 26 to 52

    Measure accounts and balances

    • Track applications started and applications completed, separately
    • Track funded accounts and funded loans, by product and by source
    • Report deposit balances gathered rather than form submissions
    • Report cost per funded account against the paid comparison channels
    • Watch attrition alongside acquisition, by product
    • Re-audit the signage map and the disclosure links

    You end up with
    A report in balances and funded loans, and a compliance record that is current

Technical fixes with the best payoff

Almost every serious problem here is a rendering problem or a domain problem, and both come from the same place. The systems that hold the valuable data were not built to be read by anything except a browser with a logged-in user in front of it.

  • The rates are not in the HTML

    A sprint

    Rate tables are usually fed from the core system or a treasury file and injected into the page after load. The visitor sees a number and a crawler sees an empty container, so the page cannot rank for the query it exists to answer and an answer engine has nothing to quote.

    Render the rates on the server, with the effective date and the required disclosure in the same component. Where the feed genuinely cannot be read at build time, cache the last known values and render those, which is both faster and readable. Then check the page source rather than the rendered view.

  • The disclosure is a link to a PDF

    A day

    Regulation DD expects an electronic advertisement carrying a triggering term to take the reader to the additional information. A footnote marker pointing at a PDF of the account disclosure is a poor version of that, and the PDF is unreadable on a phone and invisible to search.

    Put the disclosure text in the same component as the number, so it travels wherever the rate travels, and keep the full document as a download underneath. This is better compliance and better content, because the disclosure answers questions the marketing copy avoids.

  • The branch finder generates no pages

    A sprint

    Most institutions have a search box that queries a location database and renders results into one URL. So a network of thirty branches produces one indexable page, and the local pack profiles all point at the home page because there is nowhere else to send them.

    A real page per branch, with the address, lobby hours, drive-up hours, holiday hours, ATM, safe deposit, the manager and the lenders based there. Then point each profile at its own page. This is the largest single source of unclaimed local traffic in most institutions.

  • The fee schedule is a PDF

    A day

    Fees are among the most searched things about any financial institution and they are almost always published as a document. That means the answer is unreadable on a phone, invisible to search, and left to third-party sites and forum threads, which answer it less kindly than you would.

    Publish the schedule as a page with a heading per account type and a date on it. Keep the PDF as the formal document. The page will rank for fee queries on your own brand, which are currently going somewhere else.

  • Support content lives behind the login

    A sprint, then an hour per task

    How to order checks, where to find a routing number, how to dispute a transaction, what a hold means. These are high-volume branded searches and the answers sit inside online banking, so third-party sites answer them instead and intercept your customers on your own brand.

    An indexable support page per task, outside the login, written plainly. Nothing in these is confidential. It reduces call volume, it holds the brand queries, and it is among the cheapest content an institution can produce.

  • Half the journey is on the vendor's domain

    A quarter, mostly negotiation

    Online banking, and often account opening, is hosted by the digital banking provider. That splits the brand across two domains, hides the funnel, and puts pages a regulator now names for signage outside your own publishing system.

    Push for a subdomain of your own where the vendor supports it, measure the hand-off as a conversion either way, and keep an explicit record of which party owns each required element. Put a date in the contract for the signage work rather than assuming it is covered.

  • The calculators output a regulated statement

    A day per calculator

    A monthly payment produced by a mortgage calculator is a figure named on an advertising page, and the advertising rules do not exempt it for being interactive. Most institutions treat calculators as a widget and never route them past compliance.

    Review each calculator against the disclosure requirements, keep the required text with the output rather than at the foot of the page, and make sure any assumptions the tool made are shown beside the result. Then link to the product page from the result rather than to a generic contact form.

The same forty rate figures drawn twice. On the left, every cell filled, which is what a visitor sees. On the right, every cell an empty outline, which is what the page source contains when the table arrives after load.
It is all or nothing rather than a proportion, which is why this is a twenty-minute check rather than an audit.

Structured data that applies here

The types below fit this industry specifically. Most of them earn no rich result on their own, which is worth knowing before anyone sells the work on that basis. What they do is describe the entity precisely, which matters for how search engines and answer engines resolve who you are.

  • BankOrCreditUnion, one per branch

    Every branch page

    A dedicated type, and the identifier field is what makes it worth doing properly: an FDIC certificate number or an NCUA charter number is a public record a consumer can verify. Model each branch as its own node with the main institution as parent, rather than one node for the whole network.

    BankOrCreditUnion, one per branch.jsonld
    {
      "@context": "https://schema.org",
      "@type": "BankOrCreditUnion",
      "@id": "https://[YOUR-DOMAIN]/branches/[SLUG]#branch",
      "name": "[INSTITUTION NAME] - [BRANCH NAME]",
      "branchCode": "[INTERNAL BRANCH CODE]",
      "parentOrganization": { "@id": "https://[YOUR-DOMAIN]/#institution" },
      "url": "https://[YOUR-DOMAIN]/branches/[SLUG]",
      "telephone": "[+1-555-000-0000]",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "[STREET]",
        "addressLocality": "[CITY]",
        "addressRegion": "[ST]",
        "postalCode": "[00000]",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": "[00.0000]",
        "longitude": "[-00.0000]"
      },
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday"],
          "opens": "[09:00]",
          "closes": "[16:00]"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Saturday",
          "opens": "[09:00]",
          "closes": "[12:00]"
        }
      ],
      "amenityFeature": [
        { "@type": "LocationFeatureSpecification", "name": "Drive-up", "value": true },
        { "@type": "LocationFeatureSpecification", "name": "ATM", "value": true },
        { "@type": "LocationFeatureSpecification", "name": "Safe deposit boxes", "value": true }
      ]
    }
  • Organization with the regulator's own identifier

    The about page, referenced sitewide

    The node that reconciles your site with the regulator's directory. Use the certificate number for a bank and the charter number for a credit union, and put the same figure in the visible copy, because a number that appears only in markup convinces nobody.

    Organization with the regulator's own identifier.jsonld
    {
      "@context": "https://schema.org",
      "@type": "BankOrCreditUnion",
      "@id": "https://[YOUR-DOMAIN]/#institution",
      "name": "[INSTITUTION NAME]",
      "legalName": "[FULL LEGAL NAME]",
      "url": "https://[YOUR-DOMAIN]/",
      "foundingDate": "[YYYY]",
      "identifier": [
        {
          "@type": "PropertyValue",
          "name": "[FDIC certificate number / NCUA charter number]",
          "value": "[NUMBER]"
        },
        {
          "@type": "PropertyValue",
          "name": "Routing number",
          "value": "[ROUTING NUMBER]"
        }
      ],
      "areaServed": [
        { "@type": "AdministrativeArea", "name": "[COUNTY]" },
        { "@type": "AdministrativeArea", "name": "[COUNTY]" }
      ],
      "memberOf": { "@type": "Organization", "name": "[TRADE ASSOCIATION]" },
      "subOrganization": [
        { "@id": "https://[YOUR-DOMAIN]/branches/[SLUG]#branch" }
      ]
    }
  • BankAccount with the rate and the fees

    Every deposit product page

    Build this from the same component that renders the visible rate, never as a separate hand-maintained block, or the two will disagree within a week. The annual percentage rate field takes the yield you advertise, and the fees field is where the disclosure summary belongs.

    BankAccount with the rate and the fees.jsonld
    {
      "@context": "https://schema.org",
      "@type": "BankAccount",
      "@id": "https://[YOUR-DOMAIN]/personal/[SLUG]#account",
      "name": "[ACCOUNT NAME]",
      "url": "https://[YOUR-DOMAIN]/personal/[SLUG]",
      "provider": { "@id": "https://[YOUR-DOMAIN]/#institution" },
      "accountMinimumInflow": {
        "@type": "MonetaryAmount",
        "currency": "USD",
        "value": "[MINIMUM OPENING DEPOSIT]"
      },
      "annualPercentageRate": "[APY AS A NUMBER]",
      "interestRate": "[RATE AS A NUMBER]",
      "feesAndCommissionsSpecification": "https://[YOUR-DOMAIN]/fees",
      "areaServed": { "@type": "AdministrativeArea", "name": "[STATE OR COUNTIES]" },
      "audience": {
        "@type": "Audience",
        "audienceType": "[Anyone / members of the field of membership]"
      },
      "termsOfService": "https://[YOUR-DOMAIN]/personal/[SLUG]#disclosure"
    }
  • MortgageLoan or LoanOrCredit

    Every lending product page

    Only publish the fields you are willing to advertise, because each of them is a statement under the credit advertising rules. If you would not put the figure in the visible copy with its disclosure, leave the property out rather than filling it for completeness.

    MortgageLoan or LoanOrCredit.jsonld
    {
      "@context": "https://schema.org",
      "@type": "MortgageLoan",
      "@id": "https://[YOUR-DOMAIN]/lending/[SLUG]#loan",
      "name": "[PRODUCT NAME]",
      "url": "https://[YOUR-DOMAIN]/lending/[SLUG]",
      "provider": { "@id": "https://[YOUR-DOMAIN]/#institution" },
      "loanType": "[Fixed rate mortgage / Construction / Agricultural]",
      "annualPercentageRate": "[APR AS A NUMBER]",
      "loanTerm": {
        "@type": "QuantitativeValue",
        "value": "[00]",
        "unitCode": "ANN"
      },
      "amount": {
        "@type": "MonetaryAmount",
        "currency": "USD",
        "minValue": "[000000]",
        "maxValue": "[000000]"
      },
      "loanRepaymentForm": {
        "@type": "RepaymentSpecification",
        "downPayment": {
          "@type": "MonetaryAmount",
          "currency": "USD",
          "value": "[000000]"
        }
      },
      "areaServed": { "@type": "AdministrativeArea", "name": "[LENDING AREA]" },
      "requiredCollateral": "[What secures it]"
    }
  • FAQPage

    Product, fee, eligibility and support pages

    The questions that decide an account here are about eligibility, fees and access rather than about rate. Match the visible wording exactly, and never state a rate in an answer, because a figure inside markup will go stale in a way the rendered component will not.

    FAQPage.jsonld
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "[Question exactly as it appears on the page]",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "[Answer exactly as it appears. Name the real minimum, the real fee and the real eligibility route. Avoid quoting a rate here; link to the product page instead.]"
          }
        }
      ]
    }
  • BreadcrumbList

    Product, branch, lending and support pages

    Worth building once the site has a genuine hierarchy of personal, business, lending and branches. Assembling it usually exposes that the branch pages have no parent because the branch finder was a single URL.

    BreadcrumbList.jsonld
    {
      "@context": "https://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Home",
          "item": "https://[YOUR-DOMAIN]/" },
        { "@type": "ListItem", "position": 2, "name": "[Personal]",
          "item": "https://[YOUR-DOMAIN]/personal" },
        { "@type": "ListItem", "position": 3, "name": "[PRODUCT]",
          "item": "https://[YOUR-DOMAIN]/personal/[SLUG]" }
      ]
    }

What it costs

Editorial estimates rather than quotes, and high for a local-and-regional business. Two things drive it: a meaningful share of the work is engineering rather than writing, and every page that names a number needs a compliance review before it ships.

Lean

$5,000 to $8,000
  • Rates and fees rendered on the server with disclosures attached
  • The fee schedule published as a page
  • A real page per branch, with profiles pointed at them
  • The membership eligibility page, for a credit union
  • The signage map, with owners named per template

Who it suits

A single-market institution with a small marketing team

Where it stops

It fixes the plumbing and takes the branch traffic. It will not build a local lending page set or an indexable support library.

Funded

$8,000 to $14,000
  • A page per local lending programme with terms and named officers
  • State-specific product explainers replacing the generic ones
  • An indexable support page per common task
  • Business banking pages with fee schedules and named bankers
  • Structured data across the institution, branches, accounts and loans

Who it suits

A multi-branch community bank or credit union across several counties

Where it stops

It will not win the national rate comparison queries, and no tier here will. Those belong to publishers whose entire product is the comparison.

Enterprise

$14,000 to $20,000
  • Rate and disclosure architecture rebuilt as a maintained component
  • Content maintained across multiple states as programmes change
  • Original analysis of local lending conditions, published where defensible
  • Migration of vendor-hosted journeys onto your own domain
  • Attribution stitched from first touch to funded account and balance

Who it suits

Multi-state institutions, and anyone whose digital account opening is a real channel

Where it stops

Onboarding and underwriting set the real ceiling. More applications into a slow process produce abandoned applications, not funded accounts.

How to do it with no budget

Less of this playbook is free than in most industries here, because the highest-value fixes are engineering. The steps below are the ones a marketing team can do without a development ticket, and two of them are among the most valuable on the whole list.

  1. 1

    Check whether your rates are in the page source

    20 minutes

    View source in any browser

    Search the source for a rate figure that appears on screen. If it is not there, that is the single most important finding in this playbook and it explains why the product pages have never ranked.

  2. 2

    Write the membership eligibility page

    2 hours

    Your website editor

    For a credit union, list every route to membership: employer groups, associations, geography, family. Everybody who searches this is trying to join, and the answer is usually three sentences in a footer.

  3. 3

    Claim and correct every branch profile

    3 hours

    Google Business Profile

    Lobby and drive-up hours separately, holiday hours set, ATM and safe deposit noted, and each profile pointed at that branch's own page rather than at the home page.

  4. 4

    Publish the certificate or charter number

    30 minutes

    Your website editor

    Public information in the regulator's own directory that almost no institution publishes. It reconciles your site with the authoritative record and it is a trust signal that costs nothing.

  5. 5

    Map who owns each required signage element

    2 hours

    A spreadsheet

    One row per page type, one column for the element, one for the template it lives in and one for who controls that template. The vendor-hosted rows are the ones that need a date in a contract.

  6. 6

    Correct your listings on the rate aggregators

    2 hours

    The aggregators' own institution portals

    A stale figure on a site that outranks you is a wrong advertised number attached to your name. Claim the profiles and put the update in the same routine that updates your own rates.

  7. 7

    Get listed on every programme lender directory

    3 hours

    The programme administrators' sites

    Guaranteed lending, state housing finance and agricultural programme directories all rank and convert, because the borrower was sent there by a rule rather than by an advertisement.

The tool stack

Short, and weighted towards engineering rather than research. Two of the entries below are systems the institution already owns and has never used to answer a marketing question.

  • See how answer engines describe your products

    TavilySEO APIRead the review

    Assistants increasingly answer rate and fee questions from whatever they can read, which for most institutions is an aggregator rather than the bank. Checking monthly tells you whether the server-rendering work has actually landed.

    Free routeAsk an assistant the same questions by hand and record the answers

  • Publish products, branches, rates and disclosures as related records

    ContentfulHeadless CMSRead the review

    The disclosure has to travel with the number wherever it renders, which is a content-modelling problem rather than a copy one. Model rate, effective date and disclosure as one entity and the compliance question is answered structurally rather than by review.

    Free routeFree tier for a small site

  • Understand what account attrition costs against acquisition

    Customer Churn Analysis CalculatorFree toolOpen the tool

    Deposit relationships leave quietly and a rate-led acquisition strategy often buys balances that go again at the next repricing. Putting the two numbers beside each other usually changes which products get the content budget.

    Free routeFree

  • Find out which pages are actually indexed

    Search Console page indexing report

    The specific thing to look for is whether the branch pages and the product pages exist at all. In this industry a single-URL branch finder and a client-rendered rate table between them can hide most of the site.

    Free routeFree

  • Know which products actually build the balance sheet

    Your core banking reports

    Balances gathered and loans funded by product, not account counts. The product worth three pages is rarely the one with the most openings, and this report exists already for the board pack.

    Free routeAlready paid for

  • Track applications started against applications completed

    Your account opening platform

    The gap between the two is usually enormous and almost never reported to marketing. It is also the cheapest revenue available, because those people already chose you.

    Free routeAlready paid for

  • Watch the aggregators for stale versions of your own numbers

    A monthly check of the sites that list you

    Your rates appear on pages you do not control and cannot correct quickly. Put the check in the same routine that updates the rate table, because a wrong figure attached to your name is worse than no listing.

    Free routeFree

  • Keep the signage map current

    The spreadsheet from the free steps, reviewed quarterly

    The compliance date has already moved five times, which means nobody is holding it in their head. A dated map with an owner per template is the only reliable record of where the work stands.

    Free routeFree

Take it from here

Everything below is yours to take. Fill the [BRACKETS] and it is ready to use. Start with the rendering audit, because until it is done the rest of the plan is writing pages that cannot be read.

Checklist

Finds out whether the most valuable content on your site exists as far as search is concerned, and whether its disclosure travels with it.

RATE RENDERING AND DISCLOSURE AUDIT - [INSTITUTION] - [DATE]

WHY THIS IS FIRST
Rate tables are usually fed from the core system and injected
after the page loads. If that is happening, a crawler and an
answer engine both see an empty container, and every page built
around those numbers is competing for a query it cannot answer.

1. THE TEST (20 minutes, no developer needed)
   For each page below, load it, then use view-source (not the
   inspector, which shows the rendered version) and search for a
   figure you can see on screen.

   PAGE                          FIGURE ON     IN THE
                                 SCREEN        SOURCE?
   Home page rate module         [_______]     [ Y / N ]
   Savings product page          [_______]     [ Y / N ]
   CD or term deposit page       [_______]     [ Y / N ]
   Money market page             [_______]     [ Y / N ]
   Mortgage rates page           [_______]     [ Y / N ]
   Consumer loan page            [_______]     [ Y / N ]
   Rate comparison table         [_______]     [ Y / N ]
   Fee schedule                  [_______]     [ Y / N ]

   Any N above is the highest priority item in this playbook.

2. WHERE THE NUMBERS COME FROM
   Source system:            [_______________]
   Updated by:               [_______________]
   Frequency:                [_______________]
   How it reaches the site:  [ API / file / manual / vendor ]
   Who can change the
   rendering:                [_______________]

3. DOES THE DISCLOSURE TRAVEL WITH THE NUMBER?
   For every place a rate appears:
   [ ] The APY is labelled as an annual percentage yield
   [ ] The effective date is shown
   [ ] The required additional information is in the same
       component, or a link takes the reader straight to it
   [ ] That link lands ON the disclosure, not on a page that
       contains it somewhere below
   [ ] The same is true in the home page module
   [ ] The same is true in any comparison table
   [ ] The same is true in any feed sent to a third party

4. TRIGGERING TERMS ON LENDING PAGES
   Walk every lending page for these:
   [ ] A rate stated (requires the APR, using that term)
   [ ] A down payment amount
   [ ] A number of payments
   [ ] A period of repayment
   [ ] An amount of any payment
   [ ] An amount of any finance charge
   [ ] A calculator that OUTPUTS any of the above
   For each one found: is the required disclosure present and
   with it?   Page: [__________]  OK: [ Y / N ]

5. THE FIX, IN ORDER
   1. Server-render the rate component
   2. Put the disclosure inside that component
   3. Add the effective date
   4. Re-test with view-source
   5. Re-test with JavaScript disabled
   Owner: [__________]   Target date: [__________]

What to publish

Write what a national publisher cannot afford to write and what your own customers are currently asking somebody else. Both of those are larger opportunities than anything on the rate comparison side.

  • A page per branch

    One per branch, then reviewed at every hours change

    The largest source of unclaimed local traffic most institutions have, currently collapsed into a single search box. Lobby and drive-up hours separately, because that is what people search.

  • Local lending programme pages

    One per programme, reviewed when terms change

    Construction, agricultural, small business and state programme lending are decided on local knowledge and appetite. A national publisher cannot write these and a community institution already knows the answers.

  • The membership eligibility page

    Once, updated whenever the field of membership changes

    For a credit union, the highest-converting page on the site. Everybody searching it wants to join, and the answer is normally hidden in a footer or a paragraph.

  • Indexable support pages

    One per task, from the calls you already field

    Routing numbers, holds, disputes, ordering cheques. Enormous branded volume currently answered by third parties, and none of it is confidential.

  • The fee schedule as a page

    Once, republished at every schedule change

    One of the most searched things about any institution, almost always published as a PDF, and therefore answered on forums instead. A dated page holds those queries on your own brand.

  • State-specific product explainers

    Monthly, from the questions branches are asked

    The generic version belongs to the publishers. The version that turns on your state's taxes, programmes or rules is unoccupied and is usually the one that decides the answer.

And what not to

  • Rate figures that render only after the page has loaded
  • A triggering term with the required information a PDF away
  • Generic best-of and cheapest-rate content aimed at publisher-owned results
  • An illustrative monthly payment published without the disclosures that follow it
  • A branch finder that produces one URL for a whole network
  • The insured status statement dropped during a redesign and never restored
  • Support content locked behind the online banking login
  • Community involvement described in adjectives with no lending or programme detail

The expensive mistakes

Writing product pages before checking whether the rate renders

Costs you A set of well-written pages that a crawler sees as empty tables, competing for queries they cannot answer

Fix the rendering first, with the disclosure in the same component, then write

Chasing the national rate comparison queries

Costs you A budget aimed at publishers whose entire product is the comparison, with editorial teams and authority no single institution matches

Rate plus a place, branch, membership and local lending, where nobody national can follow you

Treating the signage rule as a one-off task

Costs you A compliance date that has moved five times, half the affected pages on a vendor's domain, and no record of who owns which template

A dated map with an owner per template and a written commitment from the vendor

Leaving the branch network in a search box

Costs you Thirty branches producing one indexable URL, and every local profile pointing at the home page

A page per branch with the details people actually search for, and profiles pointed at them

Keeping support content behind the login

Costs you Third-party sites answering high-volume branded questions about your own products, to your own customers

An indexable page per task, outside the login, in plain language

Reporting account openings as the outcome

Costs you A number that flatters rate-led promotions and hides balances that leave again at the next repricing

Funded accounts, balances gathered and attrition reported together, by product

What to measure

Two corrections make this honest. Report funded accounts and balances rather than applications, because the gap between them is the biggest number nobody shows marketing, and report attrition beside acquisition, because deposits leave quietly.

Leading indicators

Move first. They predict, they do not prove.

  • Indexed pages by section

    Search Console page indexing report

    An unusual first metric and the right one here. Branch pages and product pages routinely fail to exist as far as search is concerned, and no other number will tell you until months have been spent.

  • Impressions on branch, membership and local lending clusters

    Search Console, grouped by cluster

    The winnable ground, deliberately excluding the national rate terms. These move within about three months of the pages being genuinely indexable.

  • Branch profile actions

    Google Business Profile insights

    Calls and direction requests per branch, which is also the fastest way to find the branch whose hours are wrong. Report per branch rather than in aggregate.

  • Applications started

    The account opening platform

    A leading indicator and not an outcome. Reported here because the difference between this line and the funded one is usually the largest recoverable number in the whole report.

Business indicators

The ones a manager acts on.

  • Funded accounts by product and source

    Core banking reports against the application platform

    The conversion that matters. Abandonment between application and funding is enormous in this industry and is almost never treated as a marketing problem, which is where it can actually be fixed.

  • Balances gathered

    Core banking reports

    Account counts hide the difference between a rate-chasing deposit and a primary relationship. Balances, and how long they stay, is the version a treasurer can use.

  • Loans funded by programme

    The loan origination system

    Split by programme rather than by channel, because the local programme pages and the national rate traffic produce completely different kinds of borrower and completely different margins.

  • Attrition alongside acquisition, by product

    Core banking reports, quarterly

    Deposits leave quietly at the next repricing. A promotion that gathers balances and loses them again six months later looks like growth in every monthly report and is not.

A funnel from rate page visit, through product page and application started, to application completed and account funded, with the last two bands shaded to show they happen on a vendor's domain.
The shaded bands are not smaller because fewer people reach them. They are shaded because nobody is counting.

The verdict

A product feed updates itself too, but banking is the only industry here where the self-updating content is also a regulated advertisement. That makes the first question an engineering one rather than an editorial one, and skipping it wastes a year.

Once the numbers are readable, the competitive picture is unusually clear. The national comparison queries belong to publishers and always will, and everything local belongs to whoever bothers to write it, which is currently nobody.

A branch network sitting inside one search box, a fee schedule inside a PDF and a membership rule inside a footer are three of the largest unclaimed assets available in any industry covered here.

Two questions sort out a proposal for bank SEO services. Ask whether the first deliverable is a rendering fix, and ask anybody selling SEO services for banks who owns the templates on the pages the FDIC rule names.

FAQ

Banks and credit unions SEO questions

  • Why do our product pages never rank for rate queries?
    Check the page source rather than the rendered page. Rate tables are usually fed from the core system and injected after load, so a crawler sees an empty container where a visitor sees a number. Until the figures are server-rendered, the page cannot rank for the query it exists to answer, and no amount of writing will change that.
  • Can we compete with Bankrate and NerdWallet?
    Not on the national comparison queries, and the honest plan says so. They have editorial teams, review methodologies and authority no single institution will match, and their product is the comparison itself. What they cannot do is anything local: county lending programmes, branch detail, state-specific rules and membership eligibility are all unoccupied.
  • What does the FDIC signage rule actually require on a website?
    The official digital sign on the home page, on login pages, and on the first page where a customer starts opening a deposit account, plus separate signage on pages primarily dedicated to non-deposit products. The latest final rule took effect in March 2026 with a compliance date of April 2027, after the date moved five times. Confirm the current position with your compliance function.
  • Where should the rate disclosure live?
    In the same component as the number, so it travels wherever the rate renders. Regulation DD expects an electronic advertisement carrying a triggering term to refer the reader to where the additional information begins, for example through a link taking them directly to it. A footnote pointing at a PDF is a weak version of that and a bad experience besides.
  • What is the single most valuable page for a credit union?
    The one explaining who is allowed to join, and it is usually three sentences in a footer. Everybody who searches it has already decided they want a product and is checking whether they are permitted to have it. List every route, put a checker on the page, and leave the explanation of what a credit union is until the very bottom.
  • Should our branch finder be replaced with pages?
    Yes, and it is normally the largest single source of unclaimed local traffic an institution has. A search box produces one indexable URL for the whole network, so every local profile points at the home page. Build a page per branch with lobby and drive-up hours listed separately, because that difference is exactly what people search for.
  • Is support content worth building if it brings no new customers?
    It is among the cheapest content available and it should be measured on call reduction rather than on traffic. Routing numbers, holds, disputes and ordering cheques are high-volume branded searches currently answered by third-party sites, on your brand, to your own customers. None of the answers are confidential and all of them are already written somewhere internally.
  • What does bank SEO cost?
    The tiers above are editorial estimates rather than quotes. An institution running a real programme is realistically at $5,000 to $20,000 a month, which is a high floor for a business of this size. Two things drive it. A large share of the first quarter is engineering rather than writing, and every page naming a number needs a compliance review before it ships.

Run it yourself, or have someone own it

Everything above is written to be run without us, and the free path is genuinely most of the value for a single-location business. Where these plans stall is almost never the plan. It is that nobody owns it after the first month. That is the job we do, with search as one distribution layer inside a wider system rather than the whole engagement.