GEO checklist 2026: editorial illustration of a technical task list with green checkmarks, each item with its command or tool URL.
SEO & GEO 8 min

The technical checklist to get your website showing on Google AND ChatGPT (with real commands)

Operational list of 20 technical tasks I do on every new website. No theory, just the exact steps with the commands and tools. Copy and apply.

Daniel Software Engineer

In the previous post I told you Peter’s story and why I can’t guarantee that his website will appear in ChatGPT. In this one I’m going to give you the practical part: the 20 exact technical steps I do on every new website to give it the best possible citability in Google and in the AIs. No theory, just commands, tools, and order.

It’s a checklist. You can copy it, print it, do it while you read. If you apply it to your website, in 1-2 weeks you have a decent technical base. And if you want me to do it for you, I’ll also tell you at the end how much it costs.

I divide it into 4 blocks: what I do before publishing the website, what I do on launch day, what I do the first week, and what I do every month. Each step has its exact command or URL so you don’t have to think.


Block 1: before publishing the website (locally)

These steps I do with the website still on my machine, before uploading it to production. If you do them after publishing, they also work, but you’ll take longer to see results because Google will have already crawled your website with its initial configuration.

Step 1: validate that the HTML is valid. Open the homepage locally and look at the browser console (F12). If there are HTML or JavaScript errors, fix them before continuing. A poorly closed HTML makes Schema.org not process well.

Step 2: install Schema Markup Validator as a browser extension. Free extension: Schema Markup Validator by Google. You install it, go to your homepage locally, hit the extension button and it tells you if the schemas are valid. If they’re not, it tells you what’s missing. This extension is my best friend.

Step 3: create the JSON-LD of the Organization schema. Put it in a schema-organization.json file or generate it from your CMS. The JSON you need to have is the one I showed you in the Schema.org post (mine is at the end of that post). Copy it, change the data, validate with the extension from step 2.

Step 4: create the JSON-LD of the Person schema (if you’re freelance) or LocalBusiness (if you have a physical location). Same process as step 3. Copy the JSON from the Schema post, adapt, validate.

Step 5: create the JSON-LD of each Service you offer. One Service per each service. I usually have 3-4 Services per website: custom website, monthly maintenance, SEO/GEO audit, mobile app. Each with its price, priceValidUntil, areaServed and provider pointing to the Organization.

Step 6: create the JSON-LD of the BreadcrumbList for each page. The ideal is to generate it dynamically from the framework (in Astro with a component, in Next with a helper). If your website is static and you only have 10-15 pages, you can hardcode it.

Step 7: create the llms.txt file at the project root. Minimum template I recommend:

# Your website name

> One-line description of what you do and for whom.

## Services
- [Service name 1](url): short description, price from X €
- [Service name 2](url): short description, price from Y €

## About me
- Who I am, years of experience, education
- Where I am (city, country)
- Languages I speak

## Case studies
- [Project 1](url): what I did, measurable result
- [Project 2](url): what I did, measurable result

## Contact
- Email: you@email.com
- Phone: +XX XXX XXX XXX
- Web: https://yourdomain.com

## Updated
2026-XX-XX

Put it in /public/llms.txt and on build it gets copied to the root. Mine is at /llms.txt and weighs ~3,000 words, but the minimum version above is ~250 words and is already useful.

Step 8: create the robots.txt file that allows AI crawling. Recommended template:

User-agent: *
Allow: /

User-agent: GPTBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-Web
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: CCBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Bytespider
Allow: /

Sitemap: https://yourdomain.com/sitemap.xml

If you block GPTBot, ChatGPT doesn’t crawl you. If you allow it, it crawls you. It’s that simple. I allow all known AI bots, but I’m not responsible for what they do with the info afterwards.

Step 9: configure Open Graph and Twitter Card. So that when you share your website on WhatsApp, LinkedIn or Twitter, it appears with image and description. In Astro with @astrojs/seo, in Next with next-seo. If you don’t configure this, when you share your website a plain ugly link appears without image. It’s a detail, but it adds up.

Step 10: configure hreflang if your website is bilingual. If you have Spanish and English versions, each page has to have its hreflang pointing to the other. Without this, Google gets confused and may show the Spanish version to English users (or vice versa). In Astro with the i18n integration, in Next with next-i18next.


Block 2: launch day (deploy to production)

These steps I do in order the day the website goes to production.

Step 11: deploy. git push (if you use Git + Vercel/Netlify/Cloudflare Pages). Or whatever your deploy flow is. My website deploys to Vercel in 30 seconds. Check that the URL works and that the HTTPS certificate is active.

Step 12: validate Schema.org in production. Open the URL in production, run Schema Markup Validator, check that all schemas are valid. If there are errors, I fix them on the spot, I redeploy and validate again. Takes 1-2 minutes.

Step 13: run PageSpeed Insights. URL: https://pagespeed.web.dev/. Paste your homepage, click “Analyze”. The Performance score has to be above 90. If it’s below, open the “Diagnose performance issues” tab and fix what it tells you. The most common causes: images without WebP, external fonts without preload, blocking JavaScript. Solutions in 5 minutes each.

Step 14: register the website in Google Search Console. URL: https://search.google.com/search-console/. If your domain is new, “Add property” > “Domain”. It’ll ask you to verify the domain with a TXT record in DNS. Once verified, it takes between 3 days and 2 weeks to start showing data. Don’t be alarmed if the first few days it’s empty.

Step 15: submit the sitemap. In GSC > Sitemaps, paste the URL of your sitemap (yourdomain.com/sitemap.xml) and hit “Submit”. Google processes it in hours. Check in GSC > Pages that the pages are being indexed.

Step 16: create the Google Business Profile listing (if you have a physical location). URL: https://business.google.com/. Main category, address, schedule, phone, photos, attributes. Verification takes between 1 and 4 weeks (Google sends a postcard with a code to your address). Meanwhile, you can fill out the whole listing.


Block 3: the first week after launch

Step 17: review coverage in Google Search Console. GSC > Pages > “Why pages aren’t indexed”. If there are pages blocked by mistake, I fix them. If there are pages excluded by noindex and you want to index them, I remove the noindex from them. It’s normal for the first few weeks to have fluctuations.

Step 18: install Plausible or GA4 (analytics). Plausible ($9/month, no cookies) or Google Analytics 4 (free, with cookies and banner). I configure it in 10 minutes. Check that it records real visits (you enter your website and check that the event appears).

Step 19: install the FAQPage schema on the homepage and on 2-3 service pages. If I didn’t do it in block 1, I do it now. The questions and answers have to be REAL, not made up. The ones people ask me by email, WhatsApp or on the first call. This is what the AIs cite.

Step 20: configure llms.txt and verify that the AIs read it. I go to yourdomain.com/llms.txt and check that it looks good. Then, in the following days, I look in Plausible if there are referrers like chat.openai.com or perplexity.ai. The first few weeks will be 0. But in 1-3 months, if everything goes well, you’ll start to see referred traffic from the AIs.


Block 4: every month (maintenance routine)

Once a month, 30 minutes:

  • GSC > Performance: are clicks and impressions going up or down? Is average position going up or down?
  • GSC > Pages: new indexed pages? New errors?
  • PageSpeed Insights of the homepage: still at 90+?
  • Plausible: organic traffic stable or going up?
  • I ask ChatGPT, Perplexity and Gemini my 5 main keywords: am I cited?

This is what I do, no more, no less. What I do NOT do monthly: full backlink audit, competitor analysis, refresh of all posts. I do that quarterly or when there’s a specific problem.


How much does it cost to do all this

If you do it yourself, it takes you 1-2 afternoons if you already have technical knowledge, or 1-2 weeks if you’re learning. If I do it for you, this is included in the price of a new website (from €280) or in the €40 audit if you already have a website and just want the GEO/SEO tune-up.

In the €40 audit I deliver:

  • Report with what’s failing and what’s good (10-15 pages).
  • Prioritised task list.
  • If you want, I implement it for you (quote separately depending on scope).

In a new website (from €280) all this comes included by default, you don’t have to pay for it separately. It’s what I consider “the decent minimum” for a business website in 2026, the same as in 2015 I included “responsive” and in 2020 I included “HTTPS”.


If you want help with your website

If you want me to do this checklist for your website (audit + implementation), write to me at landinowebs@gmail.com or via WhatsApp. I’ll send you a fixed written quote in 24-48h.

And if you prefer to do it yourself and you get stuck on some step, I can also do short 30-minute sessions to unblock you. They cost €25 and are only paid if I’ve unblocked you.

Want to apply this to your project?

If you liked the article and want me to help you with your web, app or SEO, write to me. I reply within 24 hours with a fixed-price quote in writing or a call to scope your case, no commitment.