SEO Quick Wins – a Free DIY SEO Audit for Your Website

Contents

Got a question about your site?

Book a short consultation – I will tell you where to start.

You can do a free SEO audit yourself in a few hours – all you need is Google Search Console, PageSpeed Insights and a free Ahrefs Free account (formerly Ahrefs Webmaster Tools). Start with whatever blocks your visibility (robots.txt, noindex, indexing errors, manual actions), then improve keywords in positions 5–20, titles and meta descriptions, and internal linking. Below you’ll find a list of SEO quick wins with step-by-step instructions and a checklist to tick off.

One caveat before we start. In any service – especially in IT – three things are always in play: quality, time and money. If you’re saving money, you pay with your own time and you’re responsible for the quality yourself. So take these steps calmly and do them properly, so you don’t end up fixing the same thing three times.

Below you’ll find elements you can check yourself, for free, and then improve. The tips here should be safe for the vast majority of websites. Bear in mind, though, that for some sites certain changes may cause problems. Keep the contact details of an SEO specialist to hand, someone who can help you quickly roll back changes made on the site.

Back up first!

And make a backup of your website. I’m not joking. And not with any plugins. Connect via FTP, download the site files and then download a copy of the database. Ideally, do it regularly. It saved me, for example, when this site was hacked! Instead of cleaning up the site, I restored it completely within 15 minutes without losing any content at all! A backup matters especially if you have a large site, e.g. an online shop. In that case, though, you don’t need to download all the files every time. Focus on the database. I recommend downloading the database once a week and the files once a month.

Checklist: a free mini SEO audit step by step

If you’d rather get straight down to work, here’s the short list. Each point is described in more detail later in the post.

  • ☐ Backup of files and database made before any change.
  • ☐ robots.txt – no Disallow: /, the file doesn’t return a 5XX error.
  • ☐ noindex – important pages don’t have meta robots noindex; in WordPress the ‘Discourage search engines from indexing this site’ option is unticked.
  • ☐ XML sitemap works and is submitted to Google Search Console (and Bing Webmaster Tools).
  • ☐ Unnecessary pages – empty tags, date archives, author pages, feeds – removed or excluded from indexing.
  • ☐ GSC → Indexing → Pages – reasons for non-indexing reviewed (404, redirects, noindex, canonicals).
  • ☐ GSC → Manual actions and Security issues – nothing reported.
  • ☐ GSC → Settings → Generative AI in Search – your site hasn’t been accidentally opted out of AI Overviews and AI Mode (unless you did it on purpose).
  • ☐ Redirects and 404 errors – important old URLs 301-redirected, no redirect chains and no internal links to 404s.
  • ☐ GSC → Performance – a list of keywords in positions 5–20 with the most impressions.
  • ☐ Title and meta description – unique, with the main keyword, improved for pages with low CTR.
  • ☐ PageSpeed Insights – field data (LCP, INP, CLS) and the main recommendations checked.
  • ☐ Internal linking – the most important pages have links from content, old posts link to new ones.
  • ☐ Google Business Profile (if you operate locally) – complete details, categories, hours, photos.
  • ☐ Structured data – no errors in the Rich Results Test, no counting on FAQ and HowTo results.

Building a list of quick wins

Let’s start with what quick wins are. It’s not as if you’ll conquer the internet in a single evening and be #1 in Google for your most important keywords. The point is to carry out actions that bring the first results and move the site closer to what I call ‘state Zero’. In my experience, many sites – even really large, well-developed, well-linked and largely optimised ones – can have problems with the most basic things, such as crawl budget, Core Web Vitals or indexing as such! In that situation it’s no surprise that further money or time spent doesn’t bring the right results. There’s also no shortage of sites that have significant optimisation gaps straight after the developer hands them over.

Whatever the reason – go through the list below and see if you find areas you can fix or improve!

Improving indexing – blocking access for bots

Let’s start with something simple, even trivial, which may answer the question ‘why won’t my site build visibility in Google?’. New sites in particular, freshly moved to their production server, may have a line in robots.txt telling Google’s crawlers (and others!) not to crawl the site.

To check whether your site has this problem, go to https://YourWebsiteAddress.com/robots.txt. If you get a 404 error – generally everything’s fine (Google treats a missing file as if there were no restrictions). If you get a blank page, the file is empty. If you see some lines of text, make sure there’s nothing like this among them:

User-agent: *
Disallow: /

If the second line in particular is there, it’s a sign your site is blocked from crawling. In WordPress, also check Settings > Reading > Search engine visibility and untick ‘Discourage search engines from indexing this site’. Since version 5.3, when this option is ticked, WordPress no longer adds Disallow: / to robots.txt but adds a meta robots noindex tag to the page code instead – the effect is the same, though: the site won’t get into Google.

The Discourage search engines from indexing this site option in WordPress settings

In other CMSs this option will be somewhere else. You may also need to connect via FTP and edit the robots.txt file manually.

Warning! If you try to open robots.txt in your browser and get a 500 error (502, 503 or any other starting with 5XX), you have a serious problem! According to Google’s documentation, for the first 12 hours Googlebot stops crawling the site altogether. After that, for 30 days it uses the last good version of the file, and if the problem lasts longer and the site has availability issues, it may stop crawling completely. A 5XX code on robots.txt is therefore a potential block on the entire site.

Besides robots.txt, crawlers can also be told not to index a site/page through an HTML tag in the <head> section:

<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex">
</head>
<body>
...
</body>
</html>

To test your robots.txt file, you can use the unofficial hobby tester at https://robotstxt.com/tester (its author openly says it’s a ‘just for fun’ project, but it uses Google’s open-source parser) – enter the site address or paste the file’s contents. In Google Search Console you’ll also find the robots.txt report (Settings > robots.txt), which shows when Google last fetched the file and whether there were any errors. The quickest way to check for a noindex tag on a specific page is the URL Inspection tool in GSC.

Improving indexing – the sitemap

Another relatively simple step is making sure your site has an active, automatically generated XML sitemap. To check whether you have a proper sitemap, just go to https://YourWebsiteAddress.com/sitemap.xml. Sometimes the sitemap lives at a slightly different address (in WordPress without SEO plugins it’s /wp-sitemap.xml). If you use something other than WordPress, you can look up where the sitemap is in the documentation. You may also need to install an additional plugin.

The Sitemaps report in Google Search Console with submitted sitemaps

But what is a sitemap actually useful for? First, it lets you quickly pass the whole structure of your site to Google Search Console (Indexing > Sitemaps) and Bing Webmaster Tools. That makes it easier for search engines to find new and updated content, and you get information about any indexing problems sooner. You can also use the sitemap to look over different sections of your site. For example, you may discover unnecessary pages, or pages hidden in the site structure that have the potential to build good visibility.

You can also use the sitemap for a quick analysis of the most important SEO content and on-page elements with crawlers, a simple Google Sheet for site analysis or Python and AI scripts.

Having a sitemap won’t directly affect your rankings. It will, however, make it easier to spot potential problems and opportunities.

Improving indexing – unnecessary pages

If you use WordPress, pay particular attention to this section. When you add posts to your blog, you almost certainly add ‘tags’ to them. I’d even bet you add tags to posts more often than you look after the URL (slug) or meta tags, right? What if I told you that in the vast majority of cases adding tags to posts is completely pointless and only increases the time Googlebot needs to find new content on your site?

The list of tags in the WordPress dashboard with the number of assigned posts

Check whether the tags you’ve added are actually being used properly. Log in to your WordPress dashboard right now and go to Posts > Tags. If the table on the right shows 3–6 items with a large number of assigned posts – everything’s probably fine! But if you see pagination above the table and, on top of that, many tags have 0, 1 or 2 in the ‘Count’ column, that may be a sign you have too many unnecessary tags.

It’s worth checking the traffic these pages generate. Check their visibility for free in Ahrefs or any other tool. Also check the traffic generated recently (even over the past year) by the tag pages. Finally, you can look in Google Search Console and check how these pages perform. If the analysis shows that tag pages generate no traffic, no visibility or any interest at all, you can safely move on to fixing things. It’s very simple!

Back to the tags view in the WordPress dashboard. Select all tags that have 2 or fewer posts assigned. There may be 10 of them, or there may be 40,000. Once they’re selected, choose ‘Delete’ from the menu and confirm. If you want to select more than 20 items per page, click ‘Screen Options’ at the top of the view:

Screen Options in WordPress – number of items per page

In the ‘Number of items per page’ field, enter the value you want. I don’t recommend entering more than 1,000. Then click ‘Apply’. From now on you can work with the number of items you’ve chosen.

Should deleted tags be redirected? Reported to Google somehow? Well, if you feel like it, you can of course redirect them, e.g. to the home page. But then you’d be swapping unnecessary content for redirects, which will once again effectively slow Google’s bots down when analysing new content. The second option is to collect the URLs of all the tags you want to delete (the tag sitemap and a few simple operations may come in handy here) and mark them with a 410 (Gone) code. That gives Googlebot a clear signal that the pages previously found at those URLs were removed on purpose and won’t be coming back. I’ve described the differences between these codes in my post on 404, 410 and other 4XX errors.

To mark URLs as 410 (on an Apache or LiteSpeed server, in the .htaccess file), you can use code like this:

RewriteEngine On

# Example URLs
RewriteRule ^old-url1/?$ - [G]
RewriteRule ^old-url2/?$ - [G]
RewriteRule ^old-url3/?$ - [G]
# and so on...

Are tags the only pages worth deleting or keeping out of the index? Absolutely not! Depending on the site, you might also exclude from indexing:

  • Author pages – especially if you’re the only author of content on the site
  • Date archives – URLs that contain a post’s publication date, e.g. domain.com/2024/11/1/
  • RSS/Atom URLs – few people use RSS readers these days. By excluding RSS pages from indexing, you’ll also avoid notices in Google Search Console about URLs ending in /feed

What about other scripts and platforms? Look through your XML sitemap for URLs that make you scratch your head and wonder ‘what on earth is this?’. You may find your site has sections that aren’t really needed, especially in your industry or for your type of site.

Checking HTTP headers – a deleted URL returns a 410 Gone code

But remember – be careful! Better to check and verify something twice (or even ask!) than to delete it once. You can easily ruin your visibility by deleting things you need.

Improving indexing – indexing status in Google Search Console

There’s so much talk about Google Search Console. Everyone adds their site to it, but not everyone uses the data it provides – and that’s a mistake! You can find answers and hints there about what needs doing to get your site’s visibility moving. The first thing to check is whether the number of indexed pages is greater than the number of non-indexed pages. Open Google Search Console and go to Indexing > Pages.

The Page indexing report in Google Search Console – indexed and not indexed pages

If there are more non-indexed pages, we’ve got work to do! In my case, the problem was 404 URLs left over from the hack and from major changes to the site’s URL structure. Some of the errors were a matter of setting up the right 301 redirects. In the vast majority of cases, though, the answer was to set a 410 code for the URLs.

The most common problems you may come across in the Pages section of Google Search Console, and what to do about them

  • Not found (404) – URLs that Google found through internal linking or that external links pointed to don’t work. This may be the result of changes to the site structure without redirects, or it may be – as in my case – the aftermath of a hack. Take a look at the URLs listed there and do one of three things: redirect them to working URLs (especially URLs with history, traffic and links), mark them as 410 if the content was removed deliberately and permanently, or leave the 404 code. According to Google’s documentation, both 404 and 410 cause the URL to be dropped from the index, and 404 errors in themselves don’t harm the rest of the site. A 410 code is simply a clearer message that the page won’t come back. Also make sure no internal links lead to such URLs.
  • Page with redirect – this one’s simple. These are URLs that have 301/302 redirects to other places. Check whether the redirects are correct and needed, and whether they form chains (A → B → C). Internal links should lead straight to the target URL. If you changed the site structure a few years ago, check whether the old URLs still get any visits or have external links. If not, you can consider removing those redirects. Remember, though, that some users may still be using the old URLs. In that case it’s worth preparing a proper 404 error page that makes it easy to find the right page. Also be ready to restore the redirects. It may turn out that switching them off messes up your site’s visibility!
  • Excluded by ‘noindex’ tag – check whether the pages marked with the noindex tag really should have it. It may also turn out that rather than not indexing a given page, it would be better to remove it altogether.
  • Alternate page with proper canonical tag – this most often appears when the URLs on your site end with a ‘/’, and Google lands on a URL without the ‘/’ (or with parameters, e.g. UTM). Check whether, instead of relying on canonical tags, it would be better to fix the URLs and links on the site. As a rule, this isn’t a problem – Google chose the canonical version correctly – but it needlessly clutters your GSC reports.
  • Blocked due to access forbidden (403) – this error appears especially when some resources are password-protected. Check where the error occurs and whether Google has picked up these URLs by accident. Also make sure your firewall or CDN isn’t blocking Googlebot.
  • Crawled – currently not indexed – Google visited the URL but (for now) didn’t consider it worth indexing. A large number of pages here may be a sign that we aren’t managing our crawl budget well, or that the content is too weak or too similar. Instead of indexing new content, Google focuses on existing URLs – not necessarily high-quality ones that add anything to the site.
  • Discovered – currently not indexed – Google knows the URL but hasn’t visited it yet. Add internal links to such pages from strong, frequently visited parts of the site and make sure they’re in the sitemap. For individual, important URLs, you can request indexing through the URL Inspection tool in GSC.
Requesting indexing of a URL in the URL Inspection tool in Google Search Console

Security and manual actions in Google Search Console

These are two reports you can check in a minute, and they may explain a sudden drop in visibility. In the GSC menu you’ll find them in the Security & Manual Actions section:

  • Manual actions – a notice that a Google reviewer has found the site violates the spam policies (e.g. unnatural links, user-generated spam, hidden text). Such a penalty can lower the rankings of part or all of the site. Once you’ve fixed the problem, you submit a reconsideration request.
  • Security issues – hacked content, malware, social engineering (phishing). If something shows up here, users may see warnings in search results and in their browser. This is the situation where the backup from the beginning of this post is worth its weight in gold.

If both reports show no issues – great, you can move on. It’s worth having GSC email notifications switched on, because Google also notifies you about such issues by email.

While you’re there, take a look at Settings → Generative AI in Search. Since 31 August 2026, every property has a toggle there that decides whether links and content from your site can appear in AI Overviews and AI Mode. Sites are opted in by default – just check that nobody (e.g. a previous agency) has switched it off. If your site gets enough impressions in these features, you’ll also see a separate generative AI performance report in the Performance section.

Choosing content to improve – Top Pages in Ahrefs Free

Site checked from a technical point of view? Time to work on the content! But which content? Ahrefs comes to the rescue! You don’t need to buy an expensive plan to use it. The free Ahrefs Free account (the new name for what used to be Ahrefs Webmaster Tools) gives you access to Site Explorer and Site Audit for verified sites – with no limit on the number of sites, a limit of 5,000 crawl credits per project per month in Site Audit, and up to 1,000 backlinks and keywords visible at a time in Site Explorer. All you need to do is verify your site in GSC and then use it to verify the site in Ahrefs. I’ve explained how in my guide on how to verify your site in Ahrefs.

What next? Once you’ve logged in to Ahrefs, enter your site’s address. Then choose the Top pages report in the left-hand menu (under Organic search). The screenshots below are from 2024, so the menu layout may have changed since then.

The Top Pages report in Ahrefs Site Explorer
Screenshot from 2024 – the Ahrefs interface may have changed since it was taken.

What can you get from this view? A list of pages along with information about:

  • The potential traffic a page generates per month (this is only an Ahrefs estimate! Your real click data is in Google Search Console)
  • The page’s value, i.e. how much you’d have to pay in Google Ads to get the current results. In other words – what advertising equivalent a given page generates
  • The number of keywords associated with a given page. The higher the value, the better, potentially – though some content may end up dominating other posts on the site. Check you don’t have a keyword cannibalisation problem!
  • Top keyword, i.e. the best keyword assigned to a given URL. It makes it easy to see, broadly, which keywords your site appears for in search results. Next to the keyword you’ll find the Volume, i.e. the number of searches for that keyword per month.
  • The current position for that keyword – the last column of the table. The closer the value is to ‘1’, the better.
The Top Pages table in Ahrefs with traffic, keywords and position
Screenshot from 2024 – the Ahrefs interface may have changed since it was taken.

Remember that the free account has its limits – some advanced options (when I took these screenshots, it was e.g. the ‘Inspect’ feature) are only available on paid plans, and a full competitor analysis requires paid Ahrefs.

How do you use the Top Pages data?

I recommend downloading the data using the Export option in the top right corner of the table. That makes the data easier to manage and filter. On one project, for example, I got information about the pages I’d need to optimise and link internally first. And to avoid searching too far for the keywords I should use when linking to a given article, I relied on the ‘Top keyword’ suggestion.

Top Pages data from Ahrefs exported to a spreadsheet
Screenshot from 2024 – the Ahrefs interface may have changed since it was taken.

You can also:

  • Check which types of content rank best for you
  • Check which topic areas of your articles perform best
  • Identify which content needs further optimisation to achieve even better results

If you add data pulled from your site into a spreadsheet, you can get a powerful dose of information about your content! Check out the SEO spreadsheet here.

Improving SEO – what PageSpeed Insights tells us

Everyone likes seeing their site light up green in every tool and statistic. It’s a sign that your work is paying off. But what if your site doesn’t hit top scores in PageSpeed Insights? Or one of the values isn’t where it should be? That means there’s a chance to improve something on your site! It may not be a breakthrough for building visibility, but it will certainly make building visibility much easier.

What can you get out of a PageSpeed Insights report?

The report has two parts. At the top, in the section with data from real users, you’ll find field data from the CrUX report (Chrome UX Report) – this is what the Core Web Vitals assessment is based on. It only appears if the site gets enough traffic from Chrome. There are currently three metrics (I’ve covered them in more detail in my post on Core Web Vitals – how to improve LCP, INP and CLS):

  • LCP (Largest Contentful Paint) – measures the time it takes for the largest visible element on the page to be displayed. A good score is 2.5 seconds or less.
  • INP (Interaction to Next Paint) – how quickly the page responds to user interactions (clicks, taps, key presses) throughout the whole visit. A good score is 200 ms or less. In 2024, INP replaced the earlier FID (First Input Delay) metric.
  • CLS (Cumulative Layout Shift) – a measure of the page’s visual stability, measuring unexpected shifts of elements. A good score is 0.1 or less.

Below that is the diagnostic part – a Lighthouse lab test with scores in four categories. Since Lighthouse 13 (October 2025), performance recommendations come as so-called insights – hints shared with the Performance panel in Chrome DevTools (e.g. on document request latency or image delivery), which replaced the old separate audits. The way the score is calculated hasn’t changed, so don’t worry if the list of recommendations looks different from the screenshot.

Lighthouse test results in PageSpeed Insights – Performance, Accessibility, Best Practices and SEO
1. Performance

This area assesses the loading speed and behaviour of the page under test conditions, measuring various metrics that affect load time and user experience. Key metrics to pay attention to:

  • FCP (First Contentful Paint) – the time from when the page starts loading until the first piece of content is visible to the user. A shorter FCP means the first elements are displayed sooner. FCP isn’t a Core Web Vital, but it shows well whether something is blocking rendering.
  • LCP (Largest Contentful Paint) – the same metric as in the field data, here measured in the test. An optimal LCP is 2.5 seconds or less.
  • TBT (Total Blocking Time) – the total time the browser’s main thread was blocked by scripts. The lab test doesn’t measure INP, and a high TBT is most often a sign that INP may be a problem.
  • CLS (Cumulative Layout Shift) – a measure of the page’s visual stability, measuring unexpected shifts of elements. An optimal CLS value is 0.1 or less.

Typical optimisation recommendations:

  • Compressing resources – compressing CSS, JavaScript and image files to reduce their size.
  • Lazy loading images – loading images only when they’re about to be displayed (but not for the main image at the top of the page – that’s often the LCP element).
  • Optimised JavaScript handling – removing unnecessary or render-blocking scripts.
  • Enabling caching – lets resources load faster.
2. Accessibility

This area assesses how accessible the page is for people with different needs, including those using screen readers. Good accessibility lets you reach more users, and many of these fixes (e.g. alt texts, correct headings) also help with SEO.

Key elements:

  • Alt text for images – should accurately describe what the images show, so screen readers can read out the description.
  • Colour and contrast – sufficient contrast between background and text is key for people with visual impairments. The minimum ratio is 4.5:1 for normal text.
  • Semantic markup – correct use of HTML elements (e.g. <header>, <nav>, <footer>, <section>) helps screen readers recognise the structure of the content.
  • Easy-to-use interactive elements – buttons and links should be large and visible enough for users to select them easily.

Typical problems and fixes:

  • Missing aria attributes, which help assistive technologies read the content.
  • Keyboard navigation problems, e.g. elements you can’t reach with the Tab key.
  • Form problems, such as missing labels for form fields (<label>).
3. Best Practices

This category covers a wide range of general security, functionality and web standards practices that improve the user experience.

Main aspects:

  • Security – assesses safeguards, e.g. the use of HTTPS and protection against XSS (cross-site scripting).
  • Resource handling – checks whether the page avoids unnecessary or deprecated APIs and unstable resources.
  • JavaScript management – whether the page loads only the scripts it needs, avoids duplicate scripts and doesn’t load unnecessary resources.

Examples of problems:

  • No HTTPS support.
  • Loading resources from untrusted sources.
  • Deprecated APIs that can cause errors.
4. SEO

The SEO (search engine optimisation) area in Lighthouse checks the basic technical elements that affect whether a search engine can correctly read and index the page. A score of 100 doesn’t mean the page is well optimised – it only means there are no basic errors.

Key elements:

  • Content structure – proper use of headings (e.g. <h1>, <h2>, etc.) so the content structure is logical and follows a hierarchy.
  • Meta tag optimisation – every page should have unique, optimised meta tags, especially title and description.
  • Friendly URLs – simple, readable URLs help users and search engines understand what a page is about.
  • Using the alt attribute for images – helps search engines better understand what images show.

Typical problems and fixes:

  • No unique titles and meta descriptions.
  • Missing alt attributes for images.
  • An invalid robots.txt file or a page blocked from indexing.

How do you go about fixing the issues flagged by PageSpeed Insights?

Depending on the type of errors and problems and the platform (CMS) you use, the steps you need to take can vary. With WordPress, you’ll most likely need to think about installing or further configuring various plugins. If you use PrestaShop or another e-commerce platform, you may need to work with a programmer/developer, but also install the right plugin/module. Potentially, people whose site runs on a custom-built solution will have the hardest time… although sometimes it’s enough to add a few lines to the .htaccess file or tweak a few variables. I won’t go into detail here, because something would almost certainly break 🙂

Site Health in WordPress – the Status tab with recommended improvements

Instead, let me suggest some changes you can make in your WordPress. First of all, you need to know whether your site runs on an Apache server or, say, LiteSpeed. To check, go to https://your-site.com/wp-admin/site-health.php. You’ll see various information about your site’s ‘health’ there. Ideally, your site’s status should be ‘Good’. Try to fix or address any issues listed there. Either way, to find out about your site’s server, go to the Info tab and then choose ‘Server’.

Site Health in WordPress – the Info tab, Server section

What matters is what’s next to ‘Web server’. If it says ‘Apache’ or ‘Nginx’, you should look at plugins such as:

  • W3 Total Cache
  • WP Rocket
  • WP Super Cache
  • WP Fastest Cache
  • WP-Optimize
  • Autoptimize

Personally, I most often go for W3 Total Cache or WP Super Cache. The first plugin works well for larger sites. You obviously need to be careful not to overdo the configuration. It’s a good idea to use the ‘Setup Guide’ feature, which lets you configure the most important options. WP Super Cache is an option for smaller sites with few pages and little functionality. The other solutions also do a decent job, but some of them need the paid version to work fully (WP Rocket is paid only).

For web servers based on ‘LiteSpeed’, there’s one plugin that’s best and will speed up your site significantly: ‘LiteSpeed Cache’. It’s a free, official plugin from the makers of the LiteSpeed server which, once configured properly, makes the site load in a flash. It can significantly improve your PageSpeed Insights score by genuinely solving the most important problems.

The Server section in WordPress Site Health – Apache web server

The next thing is images. To make your media load faster and avoid problems with Core Web Vitals, it’s worth converting images to WebP (or AVIF) and giving them a fixed height and width. To do this for all images at once, you’ll want a suitable plugin. The free version of Autoptimize has limited image conversion options. To process thousands of images, I suggest the free WebP Express plugin. Depending on your server and its settings, it can convert huge numbers of images.

Also check the configuration of your theme and existing plugins, for example Elementor. See whether you can enable lazy loading, load only the CSS and JS a given URL needs, load resources asynchronously, and whether resources such as Google Fonts could be hosted locally instead of connecting to yet another external server during loading.

Sometimes moving certain script and style calls down towards </body> (or adding the defer attribute to them) can help a lot, too!

Improving SEO – title and meta description

The title tag is one of the easiest elements to improve, and it often decides whether someone clicks on your result. The meta description doesn’t directly affect rankings, but Google often uses it as the snippet in search results, so it matters for CTR. What to check:

  • Whether every important page has a unique title that contains the main keyword and clearly says what the user will find on the page.
  • Whether the title is too long – long titles get truncated in search results, and Google may also rewrite them its own way.
  • Whether the meta description encourages a click and matches the search intent, rather than being a jumble of keywords.
  • Which pages have lots of impressions and a low CTR in GSC – start your fixes with those.

I’ve covered the basics of writing these tags in my guide to meta tags.

Improving SEO – internal linking

This one’s simple. You need to improve the linking between content on your site. You have two options – do it any old how and hope it works, or prepare and do it properly.

The first thing you can do is go back up to the Top Pages section and check which pages are most worth linking to. The second option is to collect information about all your pages (or at least your blog posts) and look up the keywords, visibility or traffic each page generates. For that, my Google Sheets spreadsheet for content analysis may come in handy. You’ll probably need to extend it and add the data you need, but in principle it can be useful in your work.

It’s not always just about having – for whatever reason – 3 links going out from a post to other content. There may be far more links, or sometimes just 1. It all depends on whether you have somewhere, and a reason, to send users and Google’s bots further. There’s also the question of what your site structure looks like in the first place. It may turn out that the home page or category views are perfectly sufficient for building proper internal linking!

Sometimes a ‘see also’ block showing a few random articles will be enough, too.

But to get past the hypotheticals and take matters into your own hands, check which posts have no internal links at all and which don’t link anywhere from their content. Second: internal linking is most often done so that newer posts link to older ones. It’s rare for anyone to bother going back to an old post and adding a link to a newly published one. Be the person who refreshes old posts and adds links to new ones!

How many links should you add to a post? 2? 3? Or maybe 5? Well, notice that this post runs to tens of thousands of characters. There are more than 10 links here pointing to other posts or pages. Is that a few? Is that a lot? They’re certainly links placed where they’re useful to users. Maybe one day I’ll come back to this post and add more links to improve the SEO of other posts or pages? Maybe, for example, I’ll want to force in a link with the anchor ‘VR news’? And suddenly there are more links 🙂 The important thing is not to overdo it either way!

Improving SEO – seize the opportunities (positions 5–20)

Here’s how it goes: you open Google Search Console, Senuto (a visibility tool popular in Poland) or another visibility tracking tool (e.g. Semrush), filter for keywords and/or URLs in positions 5–20, check the potential search volume for each keyword and pick the ones with the most value. These are keywords for which Google already considers your site relevant – it just needs a little more to break into the top four or onto the first page of results.

Here’s how to do it in Google Search Console: go to Performance > Search results, set the date range to the last 3 months, select the ‘Average position’ and ‘Average CTR’ tiles, and in the table on the ‘Queries’ tab use the filter icon above the table to set a row filter for position: smaller than 20.1. Sort the results by impressions and skip keywords that are already in positions 1–4 (you can also export the data and filter it in a spreadsheet). On the ‘Pages’ tab you’ll see which URLs are responsible for those keywords.

Write these URLs/keywords down in a list, then look at what you can improve on those pages to boost their SEO, content or links. Sometimes adding a few paragraphs that answer users’ questions can work wonders! AI can speed up the work here and save you time, but check every such text and add your own knowledge – sheer volume of content won’t do anything.

I’ve tested this many times and it really works. Remember, though, that expanding content is one thing. Also add internal links, try tweaking the meta tags and, while editing the pages, generally make sure you genuinely improve their SEO. Adding external links, if you have the opportunity, won’t hurt either.

Google Business Profile – a quick win in local SEO

If you run a business that serves customers locally (a clinic, a workshop, a bricks-and-mortar shop, mobile services), Google Business Profile is one of the fastest ways to improve visibility in local results and Google Maps (I’ve covered it all in my Google Business Profile guide). Check whether:

  • the profile is verified, and the name, address and phone number are the same as on your website,
  • the right primary category and additional categories are selected,
  • opening hours (including holiday hours), description, services and photos are up to date,
  • the profile links to the right page, and you reply to customer reviews.

A well-kept profile is the foundation – without it, even the best-optimised website will have a harder time in local results.

Structured data – what to check and what to stop doing

Structured data (schema.org) helps Google understand what a page is – a product, an article, a local business or a recipe – and can make it eligible for rich results. A quick check means pasting the URL into the Rich Results Test and reviewing the reports in the Enhancements section of GSC. If there are errors there – fix them.

Watch out for outdated advice! Many guides still recommend adding FAQ and HowTo markup to ‘enlarge’ your result in Google. That no longer works. Google removed HowTo rich results from Search in 2023, and FAQ rich results – previously limited to selected government and health websites – stopped being shown from 7 May 2026. An FAQ in the page content still makes sense for users, but don’t count on extra elements in search results. Focus on the types Google still supports, e.g. Organization, LocalBusiness, Product, Article or BreadcrumbList.

Free tools for a DIY SEO audit

Free tools are enough for all the steps described above:

ToolWhat it’s useful forCost
Google Search ConsolePage indexing, sitemaps, keyword performance, manual actions, security, the robots.txt report, Core Web Vitals.Free
Bing Webmaster ToolsIndexing and visibility in Bing, sitemap submission, link analysis and an automated technical audit (Site Scan).Free
Ahrefs Free (formerly Ahrefs Webmaster Tools)Site Explorer (Top Pages, keywords, backlinks) and Site Audit for verified sites.Free after site verification (Site Audit: 5,000 credits per project per month)
Screaming Frog SEO SpiderA desktop crawler: titles, descriptions, headings, response codes, redirects, duplicates.Free up to 500 URLs per crawl
PageSpeed InsightsField data (LCP, INP, CLS) and a Lighthouse test with a list of recommendations.Free
Rich Results TestChecking that structured data on a specific URL is valid.Free
Site Health (WordPress)Information about the server, PHP versions and WordPress configuration problems.Free (built in)

And what about a ‘quick online SEO audit’, where you type in a URL and get a report a minute later? Tools like that (including Site Audit in Ahrefs Free and Site Scan in Bing) are great for catching technical errors: missing titles, 404s, redirects, slow pages. What they won’t tell you is which of the several hundred ‘issues’ are actually blocking your visibility and which you can safely ignore. So treat an automated report as a list to review, not a ready-made plan.

Summary

Are these all the quick wins you can make? Absolutely not! In fact, they’re not even the tip of the iceberg. They’re just the most common problems I end up fixing on my clients’ websites. Taking care of the elements mentioned here does, however, remove the obstacles that most often block visibility – and you’ll usually see the effects of your fixes in GSC after a few weeks, once Google has revisited and processed the changed pages.

As you work through the steps, you’ll probably notice that this whole SEO thing isn’t actually that hard. You just have to not be afraid, act, check and test. And if you need certainty about whether and how something should be done – get in touch! In a single consultation session I can practically bury you in information about what to implement, how to do it and what to expect from those changes.

Get in touch: SEO consulting

Would you rather not do this yourself, or want to go through this list together with me? Take a look at my SEO audit – I’ll review your site, list the problems by priority and advise you on how to implement the fixes.

FAQ – free SEO audit

Is a free SEO audit enough?

To start with – often, yes. A DIY mini audit based on this list will catch the problems that most often block visibility: indexing blocks, 404 errors and redirects, weak titles or a lack of internal linking. It won’t, however, replace a full analysis of competitors, information architecture or the link profile, which require experience and paid tools.

How long does a DIY SEO audit take?

Going through the checklist for a small company website or blog usually takes a few hours. Implementing the fixes takes longer – especially cleaning up tags, redirects and expanding content. For large online shops, just collecting the data can take much longer.

What tools do you need for a free website audit?

The foundation is Google Search Console. Add PageSpeed Insights, Bing Webmaster Tools and Ahrefs Free – they’re all free. To analyse many pages at once, a crawler (e.g. the free version of Screaming Frog, up to 500 URLs) or a Google Sheet with formulas that pull data from the site will come in handy.

Where should you start a quick SEO audit?

With a backup, and then with the things that can block visibility completely: robots.txt, noindex, the Page indexing report, and Manual actions and Security issues in GSC. Only once everything’s fine there is it worth working on content, titles and site speed.

Do I need to buy Ahrefs for a free audit?

No. To audit your own site, the free Ahrefs Free account is enough – once your site is verified, you get Site Explorer and Site Audit. A paid plan only comes in handy when you want to analyse competitors’ domains, look for new keywords beyond your own site or need higher limits. If you’re thinking about buying, start with the free account and see what you’re genuinely missing.

How do I do a free SEO audit of an online shop?

The same way as for a company website, with a few extra points. In online shops the usual culprits are filters and sorting options that generate thousands of URLs, empty categories, permanently unavailable products and duplicate manufacturer descriptions. In GSC, check the Page indexing report (especially URLs with parameters and ‘Crawled – currently not indexed’) and the Crawl stats report, and test your Product structured data in the Rich Results Test.

How does a free SEO audit differ from a paid one?

A free audit is one you do yourself, or an automated report from a tool – a list of potential problems without context or priorities. A paid audit done by a specialist takes into account your business goals, competitors and the specifics of your CMS, and the result is an action plan ranked by impact on visibility.

Tomasz Stopka

Tomasz Stopka

SEO consultant since 2008 · published author on content marketing

I have worked at agencies, at Onet (one of Poland’s largest web portals) and independently as SEMURAI. In the Academy I share what has worked in practice – specific and no fluff.

Read next