Free SEO audit checklist
- No signup
- Free
- Saved in this browser
0 of 50 done
Indexability and crawl
If Google cannot fetch the page, nothing else on this list matters.
The important URLs return 200
A 404 or a soft 404 cannot rank.
Open the URL. Confirm the status is 200 and the body is the page, not a theme error.
Check this URL with the SEO checkerThe page is not noindex
A noindex tag keeps the URL out of Google even when the rest of the page is fine.
View source and search for noindex. Remove it on pages you want in the index.
Check this URL with the SEO checkerrobots.txt does not block the page
A disallow line can stop the crawl before Google reads the page.
Test the path for Googlebot and read the matching line.
Open the robots.txt toolThe canonical is this URL
A canonical that points elsewhere tells Google to prefer the other URL.
If this URL should be the one in Google, the canonical should match it.
Check this URL with the SEO checkerThe site is HTTPS
Mixed or insecure URLs split signals and look dated.
The homepage and the internal links should use https.
Check this URL with the SEO checkerRedirects are one hop
Chains waste crawl and leak a little equity at each step.
The first response should land on the final URL in one redirect.
Check this URL with the SEO checkerThe URL is in the sitemap
A sitemap is a hint, not a guarantee, but a missing URL is a clue.
Open the sitemap and search for the path. Remove URLs you do not want indexed.
Check this URL with the SEO checkerSearch Console shows the URL indexed
The page can look fine and still be excluded.
Inspect the URL. Read the coverage reason before you change the page.
Site architecture and internal links
Google finds pages by following links. A page with no internal links is easy to miss.
Money pages are linked from the homepage or the main nav
Depth hides pages.
Count the clicks from the homepage. Important services should be one or two clicks away.
No important page is an orphan
A page only reachable from the sitemap is a weak page.
Crawl the internal links, or look at the pages Search Console never shows.
Anchor text says what the page is
Click here teaches Google nothing.
Use the service or the topic in the link. Do not stuff the same phrase on every page.
The footer is not a dump of every URL
A footer full of cities looks like a doorway set.
Link the real hubs. Put city pages in a sensible list, not fifty identical lines.
Pagination is crawlable
Infinite scroll with no links hides the later pages.
Older posts and products need real hrefs, not only a button that loads JavaScript.
On-page
The title, the H1, and the opening paragraph should agree about what the page is.
One unique title
Duplicate titles make Google choose for you.
Write a title for this page. Check the width. Google does not publish an official pixel limit.
Write the title and descriptionA meta description you wrote
Google may rewrite it. A description you wrote is still the sentence you want.
Say what the page offers and who it is for. Skip the keyword list.
Write the title and descriptionOne H1
Themes often print the logo or the title as a second H1.
View the page and count H1s. Keep one that names the page.
Check this URL with the SEO checkerThe topic is in the first paragraph
The opening text is what a person and a crawler read first.
Say the service and the place, if there is a place, in normal sentences.
Images that carry meaning have alt text
Empty alt on a photo of the work wastes the image.
Describe the image. Leave decorative icons empty on purpose.
Check this URL with the SEO checkerThe page links to the next useful page
A dead end makes the visitor and the crawler stop.
Add two or three links to related services, locations, or guides.
Content quality
Thin pages and copied pages are the ones I rewrite first.
The page matches the query
A service page will not satisfy a how-to search.
Read the top results. Match the job the searcher is trying to finish.
The page has something only you know
A rewrite of the top three articles does not add a source.
Add prices, process, photos, or a constraint from the real work.
The page is not a stub
A heading and two sentences is not a page.
If the URL exists, give it the explanation a customer needs, or remove it.
Two pages do not target the same query
They compete with each other.
Pick one URL. Fold the other in, or point a canonical at the winner.
Claims and dates are current
An old price or an old process erodes trust.
Update the sentence. Do not change the date and leave the text.
Performance
I use field data when Chrome has it, and lab data when it does not.
LCP, INP, and CLS are in a sensible range
A slow page loses people before they read it.
Run the URL in PageSpeed. Fix the item it names first, not a random plugin.
Check this URL with the SEO checkerImages are sized and compressed
A 4000 pixel photo in a 600 pixel slot is the usual LCP problem.
Export the size you display. Prefer a modern format.
Fonts do not block the first paint
A late font shifts the layout.
Preload the one font you need. Do not load a family you never use.
Third-party scripts are few
Chat, heatmaps, and tags often cost more than the theme.
Remove the ones nobody reads. Load the rest after the page is usable.
Structured data
Schema makes a page eligible. It does not guarantee a rich result.
The business is named in Organization or LocalBusiness
The name, URL, and logo should agree with the visible page.
One graph, one name. Do not publish two different phone numbers.
Build the schemaThe JSON-LD parses
A trailing comma makes the whole block useless.
Paste it into a validator. Fix the error it names.
Build the schemaFAQ markup matches visible questions
Do not rely on HowTo rich results
Google removed HowTo documentation on 14 September 2023.
Keep the steps in the HTML. Do not expect a HowTo rich result.
Mobile
Most of the visits I look at are on a phone.
The viewport tag is present
Without it, the phone shows a desktop page shrunk down.
The head should include width=device-width.
Check this URL with the SEO checkerButtons are easy to tap
Tiny links next to each other get mis-taps.
Give primary buttons space. Do not stack three text links on one line.
Body text is readable without zoom
Grey 12px text fails people and fails the page.
Use a size you can read on your own phone.
Local, if you have a place
Skip this section if you sell nationally and have no premises.
Name, address, and phone match the Google profile
Small differences create two identities.
Pick one spelling and use it on the site, the profile, and the citations.
Each location has its own page
A single page that lists 20 cities is weak.
Give a real location its own URL, with the address in the HTML.
LocalBusiness schema matches that page
The schema address should be the address on the page.
Do not copy the head office onto every city page.
Build LocalBusiness schemaThe map embed is the right place
A map of the wrong city is a common copy-paste.
Open the embed and confirm the pin.
Off-page
I look at whether other sites name you, not at a vanity domain score.
Other sites use your real name
The anchor and the name on your site should match.
Search the brand. Fix the profiles that use an old name.
Obvious junk links are noted, not panicked over
Most sites have some junk. Disavow is rare.
List the ones that are clearly paid or hacked. Ignore the rest until you have a manual action.
You can name the pages that outrank you
The gap is specific pages, not a score.
Open three results. Note what they have that you do not.
Mentions that do not link are a short list
A mention without a link is still a mention. A link is better.
Ask for the link when the relationship is real. Do not blast a template.
AI search readiness
If the words are not in the HTML, an answer engine cannot quote them.
The main text is in the HTML
Text that appears only after JavaScript is easy to miss.
View source. If the paragraph is missing, render it on the server.
Check this URL with the SEO checkerYou have chosen which AI bots to allow
Blocking a search bot can keep you out of that answer.
Decide training versus search. Do not block Googlebot by accident.
Open the robots.txt toolThe brand name is consistent
Three spellings look like three businesses.
Use one name in the title, the H1, and the schema.
Check AI visibilityllms.txt is optional
Some tools read it. Major answer engines have not confirmed they use it.
Add it if it is easy. Do not treat it as the strategy.
Draft llms.txt
Analytics and tracking
If you cannot see organic visits, you cannot tell whether the work did anything.
Search Console is verified
This is the source for queries, pages, and index coverage.
Verify the domain property if you can. Submit the sitemap.
GA4 records organic sessions
A tag that fires twice, or not at all, ruins the story.
Check a landing page in realtime, then in the organic channel the next day.
A lead or a sale is a conversion
Traffic without a conversion is a vanity chart.
Mark the form, the call, or the order. Check that it fires once.
