Rank Any Site

Blog · Hand built

9 Static Website SEO Problems We Found on 73 Real Sites

By Anthony Limpert ·

73hand built sites rescanned daily
99median mobile PageSpeed
89median score out of 100
69sites missing their main phrase somewhere
A Rank Any Site report for clickflame.com, a hand built site on Netlify scored 95 of 100, open to the Install tab with the files bundle steps

69 of 73. That's how many hand built websites in our daily scans had a page whose title phrase never showed up in its description or first paragraph. Rank Any Site has rescanned all 73 at least once a day since October 18, 2026. They load fast. They still miss the basics.

Pick Rank Any Site as a preferred source on Google

Scores updated October 2026

Up Front

Static website SEO isn't about speed. Your static site is already fast. Ours scored a median 99 on Google's mobile PageSpeed test. The points get lost in the head of each page, in the headings, and in the schema. A plugin does that work on WordPress. On a hand built site, you or a tool has to write it. I found nine problems that showed up again and again across 1,501 pages. Each one takes minutes to fix once you know it's there.

  • 73 hand built sites, 1,501 pages, rescanned every day from October 18 to 24, 2026.
  • Median mobile PageSpeed was 99. Median SEO score was 89 out of 100.
  • 69 sites had a page whose main phrase was missing from its description or first paragraph.
  • 25 sites had at least one page with no schema at all.
  • Sites with an llms.txt file had a median score of 92. Sites without one had 84.

Fast Isn't the Same as Found

Every guide on static sites says the same thing first. They're fast, so they rank. Half of that is true. Our 73 sites are mostly plain HTML on Netlify or Cloudflare. 69 of them scored 90 or higher on mobile speed. 26 scored a perfect 100.

Their SEO scores tell a different story. The median was 89, the low was 52 and only one site hit 100. Speed got them in the door. The head tags kept them from the top.

One more thing the old guides miss. Many still tell you to watch First Input Delay. Google dropped it. Interaction to Next Paint took its place as a Core Web Vital in March 2024. A good score is under 200 milliseconds for at least 75% of visits. Static pages with little JavaScript tend to pass that with room to spare.

So stop tuning speed you already have. Look at what a crawler reads in each page's source. That's where the rest of your score is.

The 9 Problems, Ranked by How Many Sites Had Them

The scan checks every page it reads against the same list. Below is the count of sites that had at least one page with each problem on their latest scan. It's out of 73.

Bar chart of the nine most common SEO problems on 73 hand built websites. Main phrase not in description or intro 69, heading skips a level 42, page reads above grade 12 37, description over 160 characters 36, title over 60 characters 33, thin page under 300 words 32, no llms.txt file 28, no Twitter card tag 27, page with no schema 25.
Each bar counts sites, not pages. One bad page is enough to count.
ProblemSites with itThe fix
Main phrase not in description or intro69 of 73Use the title's main phrase once in each
Heading skips a level42 of 73Go h2 to h3, never h2 to h4
Page reads above grade 1237 of 73Shorter sentences and plain words
Description over 160 characters36 of 73Cut it to one clear sentence or two
Title over 60 characters33 of 73Put the topic first, trim the rest
Thin page under 300 words32 of 73Answer the question fully, or merge the page
No llms.txt file28 of 73Upload one to the root folder
No Twitter card tag27 of 73Add twitter:card to the head
Page with no schema25 of 73Paste a JSON-LD block in the head

Notice what's not near the top. Missing titles and missing descriptions barely showed up. Two sites had a page with no description. Two had a page with no h1. People who hand build a site get the big tags in. They miss the small ones that tie a page together.

Fix the Head of Every Page First

The head is where a plugin would do its work. On a static site it's a few lines of HTML at the top of each file. Five of the nine problems live there.

Say the main phrase in the description and the first paragraph

This was the big one, on 69 sites. Say the title is "Water Heater Repair" and the description talks about "quality service" instead. Google builds a snippet from what matches the search. Its own docs say it uses your meta description only when that's a better summary than the page text. A description that skips the topic rarely wins.

Keep titles near 60 characters and descriptions near 160

Google sets no hard limit on either one. It cuts them in the results to fit the screen. That's why our scan flags a title over 60 characters and a description over 160. 33 sites had a long title and 36 had a long description. Put the topic and the place first, so the cut never takes the part that matters.

Make every description its own

Google says identical descriptions on every page aren't helpful. A hand built site copies its head from page to page, so this sneaks in. Only one of our 73 sites had a duplicate description open on its latest scan. A daily scan flags a copied head the next morning, before it sits for months.

Add the share tags

27 sites had a page with no Twitter card tag. 20 had a page missing an Open Graph tag. These don't move rankings. They decide whether a shared link shows a picture and a title or a bare URL.

The Install tab of a Rank Any Site report for clickflame.com, a hand built site on Netlify, showing the four files bundle steps and the Cloudflare edge Worker steps
The Install tab on our own clickflame.com report. A hand built site gets the files bundle first.

Headings, Thin Pages and Reading Level

The next three problems are in the body, not the head. They're also the ones a plugin can't fix for you anyway.

42 sites had a page where the headings jump a level. That's an h2 followed by an h4, usually because someone liked how the h4 looked. Screen readers and crawlers use those levels as an outline. Pick heading tags by order, then style them with CSS.

Google also leans on your main heading to write its title link. Its docs say to put the title in the first visible h1 and make it stand out. Two of our sites had a page with no h1. Two had a page with more than one.

32 sites had a thin page, under 300 words. On a hand built site that's often a contact page or a service page that never got finished. Either write the answer the visitor came for, or fold the page into a bigger one.

37 sites had a page that reads above grade 12. Long sentences hurt people on phones. They also make it harder for an AI tool to lift a clean answer from your page. Cut sentences in half. Swap the long word for the short one.

Schema You Can Paste Into Plain HTML

Schema is code that tells search engines what a page is about. Google recommends JSON-LD, a script block that sits in the head. That's perfect for a static site. You don't need a plugin. You paste one block per page.

25 of our 73 sites had at least one page with no schema at all. Eight home pages had no Organization or LocalBusiness schema. That's the block that tells Google and AI tools who you are, where you are and how to reach you. One site had a schema block with broken JSON, which counts for nothing.

Schema won't promise you a rich result. Google says it only makes a page eligible. But it's the cheapest way to state your facts in a form a machine can't misread.

The Schema tab of a Rank Any Site report for clickflame.com, listing the schema types the home page already has and saying nothing more will be added
The scan skips any schema type a page already has, so nothing doubles up.

The AI Files a Static Site Serves Itself

This is where a static site beats a website builder. Vercel looked at the big AI crawlers in December 2024. GPTBot, ClaudeBot and PerplexityBot didn't run JavaScript. They read the raw page source. A hand built page has every word in the source already, so they see all of it.

You also own the root folder. That means you can upload the AI files yourself. No edge Worker, no app, no workaround.

  • llms.txt is a plain Markdown file at your root that tells AI tools who you are. The format comes from llmstxt.org.
  • robots.txt says which crawlers may read which pages, and names your sitemap.
  • sitemap.xml lists your pages. Google says one file holds up to 50,000 URLs. It ignores the priority and changefreq tags, and trusts lastmod only when the dates are accurate.

45 of our 73 sites serve an llms.txt file. Their median score was 92. The 28 without one had a median of 84. I won't say the file alone made that gap. The sites with it are the ones somebody keeps working on. But it's a free file, and you can upload it today.

The llms.txt file served at clickflame.com, a plain Markdown summary of the business with its phone, a How To Check Us link and a list of service pages
The llms.txt on clickflame.com, a hand built site. It's one text file in the root folder.

How Rank Any Site Works on a Hand Built Site

The scan reads your public pages the way a crawler does. On a static site it reads every word, because there's nothing hidden behind a script. Then it writes the fixes from each page's own text.

A hand built site gets the files bundle. You download it and get one head block per page, ready to paste. You also get llms.txt, robots.txt, a sitemap and a How To Check Us page for your root folder. If your DNS runs through Cloudflare, the edge Worker can add the same fixes in the page source without you touching a file.

The daily rescan is the part that keeps the score. On our 73 sites, 41 held the exact same score all week. The best single gain was 7 points. That's what a site in good shape looks like. Nothing drifts, and a new page with a bad title shows up the next morning.

Hand built sites scored highest of any platform we track. The full list is in Rank Any Site on 7 website platforms.

Run the free scan on your own static site to see which of the nine you have. You can read how it works, see the October test on 61 business sites, or check the plans for the daily rescan.

Answers to the Usual Questions

Are static pages less SEO friendly than dynamic pages?

No. Google reads a static HTML page just fine, because every word is already in the source. Our 73 hand built sites had a median mobile PageSpeed score of 99. What they lose is the plugin that writes tags for you, so the head tags have to be written by hand or by a tool.

Can I do my own SEO on a hand built website?

Yes. Most of it is in the head of each page. Give every page its own title and description that use the page's main phrase, keep one h1, add JSON-LD schema, and serve a sitemap, robots.txt and llms.txt at the root. A free scan tells you which pages are missing what.

Does a static site need a sitemap?

It should have one. Google reads sitemap.xml to find your pages, and one file holds up to 50,000 URLs. Google ignores the priority and changefreq tags, and it only trusts lastmod when the dates are accurate, so only change the date when the page really changed.

Does a static website need an llms.txt file?

It helps AI tools read who you are. The file is plain Markdown at your site root. A static site can serve it with no extra setup, since you control the root folder. 45 of our 73 hand built sites serve one, and their median score was 92, against 84 for the sites without it.

Is speed enough to rank a static site?

No. Speed helps, but it doesn't write your titles. Our hand built sites scored a median 99 on mobile speed and a median 89 out of 100 on SEO checks. The missing points were in the head tags, the headings and the schema.

Citations

Scan your own site free

Paste your address and see your score, what is missing, and the fixes written for your platform in about a minute.

Run A Free Scan See Plans