Technical SEO is the part of the job nobody sees, and the part that decides whether everything else works. It is not about picking keywords or writing more posts. It is about making sure Google can crawl, understand and display your pages without tripping. This is the route we use, in the order that makes sense to run it.
Search Console and Analytics: the foundation that has to exist first
Without those two tools you are working blind. Both are free and take minutes to install.
Google Search Console shows the search engine side: which pages were indexed, which were rejected and why, which terms brought clicks, the average position, which crawl errors exist. It is the only official source on how Google sees your site. Verify the property by domain, not only by URL, so you cover every subdomain and protocol variation at once.
Google Analytics 4 shows the visitor side: where they come from, what they do, where they leave. If you never configured events beyond the defaults, start with the events that represent real contact, such as form submissions and WhatsApp clicks. Our article on the metrics that actually matter in GA4 goes into detail.
One important note: installing both tools improves nothing by itself. It only stops the problems from hiding.
Once installed, look at the page indexing report in Search Console first. It splits known URLs into indexed and not indexed, and every exclusion reason has its own list. Finding dozens of pages there marked as discovered but not indexed, or as duplicates without a defined canonical, usually explains in minutes a problem that had been dragging on for months.
Titles and meta descriptions that actually work
The <title> is the main text describing the page to a search engine, and it is what becomes the blue link in results. Every page needs its own, unique, with the words that describe that page first and the brand at the end. Something like Website maintenance in Belo Horizonte | ALB Seven works better than ALB Seven - Home - Welcome.
Very long titles get truncated on display. There is no exact character limit, because truncation is done by pixel width, but staying near 60 characters avoids surprises. And Google may rewrite your title if it decides it does not describe the page well, which usually happens when the title is generic or stuffed with repeated keywords.
The meta description is not a ranking factor, but it is the text that convinces a person to click. Write one per page, between 120 and 155 characters, saying what the person will find there. The same description on every page is wasted space.
Heading structure
Headings are not font sizes, they are structure. The rules are simple:
- A single
<h1>per page, describing the main subject. <h2>for sections,<h3>for subdivisions inside a section.- No skipping levels. Do not jump from
<h2>straight to<h4>. - Never use a heading just to make text bigger. CSS exists for that.
This helps the search engine understand hierarchy, and it helps screen reader users navigate the page, a subject covered in web accessibility: the basics.
Structured data: which schema for which business
Structured data is a snippet of code, usually JSON-LD inside the HTML, that describes the page content in a vocabulary search engines understand. It guarantees nothing, but it enables visual features in results and reduces ambiguity.
| Business or page type | Recommended schema |
|---|---|
| Business with a physical address | LocalBusiness |
| Company with no walk-in service | Organization |
| Blog article | Article or BlogPosting |
| Frequently asked questions page | FAQPage |
| Product for sale | Product with Offer |
| Step-by-step guide | HowTo |
| Site navigation | BreadcrumbList |
Two rules keep you out of trouble: the schema has to describe what is visible on the page, and the result has to pass the Google Rich Results Test before you call it done. Marking up reviews that do not exist on the page is exactly the kind of thing that earns a manual penalty.
Sitemap.xml and robots.txt without mistakes
The sitemap.xml is the list of URLs you want indexed. It should contain only pages returning 200, only in their canonical version, with no redirects and no pages marked noindex. A sitemap full of junk makes Google trust it less. Submit the sitemap URL in Search Console and check the read report.
Robots.txt says what should not be crawled. The classic mistake is blocking CSS and JavaScript folders. If Google cannot load those files, it cannot render the page properly and ends up evaluating a broken site. Another serious mistake is leaving the staging Disallow: / in production. That one is worth checking today.
Remember too that robots.txt prevents crawling, not indexing. To remove a page from the index, use the noindex meta tag and keep the page crawlable so Google can read that instruction.
Images: format, dimensions and alt text
Three quick checks per image: modern format, sized for actual display, and a descriptive alt attribute. The alt describes the image for those who cannot see it, including screen readers and the search engine. Write what the image shows, not a list of keywords. A purely decorative image can have an empty alt. The full subject is in web image optimisation.
HTTPS and headers
HTTPS stopped being a differentiator long ago. The whole site has to be on HTTPS, with a permanent redirect from HTTP, and with no mixed content, meaning an image or script still called over HTTP inside a secure page. Add the basic security headers to that, the subject of HTTPS, HSTS and security headers.
Mobile-first: what it means in practice
Mobile-first indexing means Google uses the mobile version of your page as the basis for indexing and ranking. The practical consequence is direct: if some content only appears on desktop, for indexing purposes it barely exists.
Check that the text is the same in both versions, that navigation links are reachable in the mobile menu, that tap targets are large enough for a finger, that nothing requires horizontal scrolling, and that the font is readable without zooming. And test on a real device, not only in the browser simulator.
Another mobile point that slips by: content hidden behind tabs or accordions still counts for indexing, as long as it is in the HTML. What does not count is content only inserted after a click, because it does not exist in the document until someone interacts, and nobody interacts on the crawler behalf.
The final checklist in 20 items
- Search Console verified as a domain property.
- Google Analytics 4 installed, with contact events configured.
- Sitemap.xml generated, clean and submitted in Search Console.
- Robots.txt with no blocks on CSS, JavaScript or the whole site.
- HTTPS active on every page, with a 301 redirect from HTTP.
- A single canonical version of the domain, with or without www.
- Self-referencing canonical tag on every page.
- Unique, descriptive title with the brand at the end, on every page.
- Unique meta description per page.
- One H1 per page, with a coherent heading hierarchy.
- Short, lowercase URLs with hyphens and no needless parameters.
- Images in modern formats, resized, with descriptive alt text.
- Width and height declared on images to prevent layout shift.
- Core Web Vitals within thresholds, per our Core Web Vitals guide.
- Content present in the HTML served by the server, not only via JavaScript.
- Structured data applied and validated without errors.
- A useful 404 page that returns a real 404 status.
- Internal links between related pages, with descriptive anchor text.
- Mobile version carrying the same content as desktop.
- Periodic review of the page indexing report in Search Console.
Run through this list once a quarter. Most items do not change, but one careless deploy is enough to reintroduce an old problem, and it is always cheaper to catch that before losing positions.
If you would rather have someone run the audit with you, going through your site item by item, talk to ALB Seven.