Gordon  Matlala

Gordon Matlala


Best 8 Simple Steps to Complete a Technical SEO Audit

A technical SEO audit helps teams understand behind-the-scenes issues that affect search engine rankings like site speed, indexing, and backlinks. It’s important that SEO specialists have a full view of all of the elements that affect page rankings so that teams can take the best course of action to improve their positions.

Conducting daily technical SEO audits is crucial for building a great SEO strategy. But if you’re still starting out, beginning work with a new firm, or want to learn how to complete a technical SEO audit, it can be overwhelming.

In this article, we’ll go over eight steps to help you complete a technical SEO audit, increase web traffic to your web pages, and build your confidence as an SEO specialist.

What Is a Technical SEO Audit?

What most people think of as SEO is what specialists refer to as on-page SEO. This is where a professional optimizes the content that appears on a website so that it appears to the right audiences organically.

Technical SEO is not about the content that appears on a website but how users and search bots navigate through each page. A technical SEO audit is when specialists use a checklist of behind-the-scenes technical elements to review and improve to increase page rankings in search engines.

What’s involved in a technical SEO audit

When SEO specialists perform a technical SEO audit, they check a series of factors that impact a website’s speed, performance, and usability, and they take action towards optimizing web pages. Regular, sometimes daily technical SEO audits can help specialists learn about technical issues they might not know about.

A technical SEO Venn diagram showing technical, on-page and off-page factors and where they intersect

Image source: WordStream

SEO specialists and marketing teams use tools such as Google Search Console, Google PageSpeed Insights, web crawlers, mobile crawlers, and indexing tools, to optimize their web pages and improve search engine rankings through technical SEO audits.

When you should complete a technical SEO audit

It’s important to complete technical SEO audits regularly. Some businesses use technical SEO to help improve cash flow via web traffic and conversions, so daily audits are a must. But for blogs and personal websites, weekly or monthly SEO audits should suffice.

Besides regular maintenance, you should always complete a technical SEO audit when moving to a new site, start freelancing for a new client, or when you first get hired at a firm. And of course, technical SEO audits also come in handy during periods where your rankings are stagnant or in decline.

What you need to do before conducting a technical SEO audit

Before you conduct a technical SEO audit, there are a few things you need to do:

  1. Find out what your client’s goals are. Do they want to improve SEO, make web pages easier for users to navigate, or optimize their site’s performance?
  2. Get access to their tools and analytics. To perform a technical SEO audit, you’ll need to be able to access things like the site’s Google console, performance monitoring analytics, and anything else you need to meet your client’s expectations.
  3. Sign a written agreement. Whether you’re contracted for one job or ongoing work, it’s important to have a written agreement explaining what you’re going to do and how you’ll do it. You’ll also need liability disclaimers and a list of responsibilities so that you aren’t held accountable for things outside your control.

Having all of this information beforehand is important so you can prepare for the work. For example, if you were working for a SaaS company, you might be hired to perform a technical SEO audit on certain specialized landing pages based on their industry and business type so that they appear in front of the right people according to their previous searches and user behavior.

A diagram showing all the factors involved in an SEO audit

Image source: Search Engine Land

But if you were working for a retail company, your job might be to ensure that pages load fast, that there are no image issues, and that all of your 4xx links redirect to the correct locations.

A Step-by-step Guide to Completing a Technical SEO Audit

Let’s go through each of the eight steps that will help you complete a technical SEO audit successfully.

1. Crawl your website

Use a tool that scans your website to check how many URLs there are, how many are indexable, and how many have issues, including any problems hindering your site’s performance.

Computer screen showing a performance audit

Image source: Deepcrawl

For Wix users, Deepcrawl is the top tool that professionals trust, but most people start out using Google Search Console:

  1. Decide which sitemap format you want to use: XML, RSS, mRSS, Atom 1.0, or Text.
  2. Create the sitemap either manually or automatically with a sitemap generator.
  3. Add your sitemap to your robots.txt file, or submit it to Google through the Search Console.

2. Spot indexing issues

If the website has pages that Google can’t crawl, it may not be indexed properly. Here are some common indexing issues to look for:

  • indexation errors
  • robots.txt errors
  • sitemap issues

The easiest way to check your site indexation is to use the Coverage Report in Google Search Console. It will tell you which pages are indexed and why others are excluded so you can fix them. You may need to optimize your crawl budget to ensure that your pages are indexed regularly.

3. Check technical on-page elements

Although on-page elements are often left out of a technical SEO audit, attending to them is considered basic housekeeping that needs to be addressed. Here’s a list of on-page elements to review during a technical SEO audit:

  • page titles and title tags
  • meta descriptions
  • canonical tags
  • hreflang tags
  • schema markup

4. Identify image problems

Image optimization is another often-overlooked aspect that’s crucial to technical SEO audits. Ensuring images have no errors can help a site’s ranking in many ways, including improved loading speeds, increasing traffic from Google Images, and improved accessibility.

Be sure to identify technical image problems such as:

  • broken images
  • image file size too large
  • HTTPS page links to HTTP image
  • missing alt text

5. Analyze internal links

Next, it’s important to analyze internal links. Identify 4xx status codes that need to be redirected. If there are any orphan pages with no internal links leading to them, identify and address them.

6. Check external links

Next, move on to the external links. External links are important because they make a website more credible to users and search engines. Ensure all backlinks are active and don’t lead to broken pages, and check to see that all pages have outgoing links.

7. Measure site speed and performance

Google Search gives better ranking positions to websites with good performance and fast loading times.

A screenshot op Google's PageSpeed tool

Image source: PageSpeed

Here’s how to use Google PageSpeed Insights to check on a site’s performance:

  • Go to the Google PageSpeed Insights page.
  • Input your web page URL into the box.
  • Click analyze and view your results.

This tool will provide you with an overall score, field data, suggestions, and other diagnostic information that can help improve your page speed.

8. Ensure your site is mobile-friendly

Finally, ensure that the site you’re auditing is mobile-friendly, responsive, and compatible with different browsers. Google favors responsive web pages that load easily and are easy to view regardless of the user’s device.

Here’s an example of how CryptoWallet.com uses mobile and web-friendly design:

CryptoWallet web view

Web view

CryptoWallet mobile view

Mobile scrolling view

It’s easy to check the responsiveness of a website with a tool like Responsive Web Design Checker or with these steps in Google Chrome:

  • Open the web page in Google Chrome.
  • Right-click to open the menu and select Inspect.
  • Click on the Toggle device toolbar to see how the website looks on screen and mobile.

Wrapping Up

Technical SEO audits help optimize websites so that they’re easier for users and for indexing bots to understand. Conducting a technical SEO audit involves a lot of elements, but this eight-step process can help streamline your workflow so that you don’t miss a thing.

Original article source at: https://www.sitepoint.com/

#seo #steps #audit 

Best 8 Simple Steps to Complete a Technical SEO Audit

Easy Audit: A Symfony Bundle to Log Selective Events

Easy Audit

A Symfony Bundle To Log Selective Events. It is easy to configure and easy to customize for your need.

Note: If you are using Symfony version older than 5.0 you need to use EasyAuditBundle 1.4.x


  1. Add EasyAuditBundle in your composer.json
  2. Enable the Bundle
  3. Create audit_log entity class
  4. Configure config.yml
  5. Update Database Schema

1. Add EasyAuditBundle in your composer.json

Add EasyAuditBundle in your composer.json:

    "require": {
        "xiidea/easy-audit": "^2.0"

Now tell composer to download the bundle by running the command:

$ php composer.phar update xiidea/easy-audit

Composer will install the bundle to your project's vendor/xiidea directory.

2. Enable the Bundle

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new Xiidea\EasyAuditBundle\XiideaEasyAuditBundle(),

3. Create audit_log entity class

The XiideaEasyAuditBundle supports Doctrine ORM/MongoDB by default. However, you must provide a concrete AuditLog class. Follow the instructions to set up the class:

4. Configure config.yml

You can find sample config data in Resources/config/config-sample.yml file

# app/config/config.yml
    #resolver: xiidea.easy_audit.default_event_resolver                           #Optional
    #audit_log_class : MyProject\Bundle\MyBundle\Entity\AuditLog                  #Required
    #doctrine_event_resolver : xiidea.easy_audit.default_doctrine_event_resolver  #Optional
    #default_logger : true                                                        #Optional
    #user property to use as actor of an event
    #valid value will be any valid property of your user class
    user_property : ~ # or username                            #Optional

    #List of doctrine entity:event you wish to track or set to false to disable logs for doctrine events
    # valid events are = [created, updated, deleted]
    #doctrine_objects :                                              #Optional
    #     MyProject\Bundle\MyBundle\Entity\MyEntity : [created, updated, deleted]
    #     MyProject\Bundle\MyBundle\Entity\MyEntity2 : []

    #List all events you want to track  (Optional from v1.2.1 you can now use subscriber to define it)
    events :                                                   #Optional
        - security.interactive_login

    #List all custom resolver for event
    #custom_resolvers :
    #       security.interactive_login : user.event_resolver
    #       security.authentication.failure : user.event_resolver

    #    xiidea.easy_audit.logger.service: ["info", "debug"]
    #    file.logger: ["!info", "!debug"]

    #Custom Event Resolver Service
    #     class: Xiidea\EasyAuditBundle\Resolver\UserEventResolver
    #     calls:
    #        - [ setContainer,[ @service_container ] ]

5. Update Database Schema

As all setup done, now you need to update your database schema. To do so,run the following command from your project directory

$ php app/console doctrine:schema:update --force

Core Concepts


Logger is the core service which are responsible for persist the event info. You can define as many logger as you like. EasyAudit Bundled with a logger service xiidea.easy_audit.logger.service which is the default logger service. You can easily disable the service by setting default_logger: false in configuration.


Resolver is like translator for an event. It used to translate an event to AuditLog entity. EasyAudit bundled with two(2) resolver services xiidea.easy_audit.default_event_resolver, xiidea.easy_audit.default_doctrine_event_resolver. And a custom EventResolver class UserEventResolver to illustrate how the transformation works. You can define as many resolver service as you want and use them to handle different event. Here is the place you can set the severity level for a event. Default level is Psr\Log\LogLevel::INFO. Custom severity levels are not available. EasyAudit supports the logging levels described by PSR-3. These values are present for basic filtering purposes. You can use this value as channel to register different logger to handle different event. If you add any other field to your AuditLog object, this is the place to add those extra information (tags, metadata, etc..)


It is now possible to register logger for specific channel. channel is refers to log level. you can configure EasyAudit logger services to handle only specific level of event.

Warning - BC Breaking Changes

Since v1.2.2 pre_persist_listener option has been removed. You can use this cookbook to achieve the same functionality

Since v1.2.2 EventResolverInterface been split into EmbeddedEventResolverInterface and EventResolverInterface

Since v1.3.x The new Event object has been adapted. And the signature of EmbeddedEventResolverInterface and EventResolverInterface also changed. Now it expects extra $eventName parameter

Since v1.4.7 EntityEventResolver been refactored to a simplified version, if your code directly depends on older version of the implementation you are advised to copy the content of old implementation from here

Since v2.0 The FosUserBundle Events are removed from UserEventResolver and Event class using Symfony\Contracts\* namespace


Look the cookbook for another interesting things.

Download Details:

Author: xiidea
Source Code: https://github.com/xiidea/EasyAuditBundle

License: MIT license

#symfony #php 

Easy Audit: A Symfony Bundle to Log Selective Events

Understanding Auditing On The AWS Platform

The AWS Management Console, along with the AWS CLI can produce powerful results for auditors across multiple regulatory, standards, and industry authorities. I am going to cover some of the key sources that produce important and meaningful log information that you can use within your audit and compliance program.

You should consider auditing your security configuration in the following situations:

  • On a periodic basis. You should perform the steps described in this document at regular intervals as a best practice for security.
  • If there are changes in your organization, such as people leaving.
  • If you have stopped using one or more individual AWS services. This is important for removing permissions that users in your account no longer need.
  • If you’ve added or removed software in your accounts, such as applications on Amazon EC2 instances, AWS OpsWorks stacks, AWS CloudFormation templates, etc.
  • If you ever suspect that an unauthorized person might have accessed your account.

The key services that produce meaningful audit event telemetry in most AWS environments include: Amazon S3Elastic Load BalancerAmazon CloudWatchAWS CloudTrail, and Amazon VPC. This is not a definitive list, but should get you started in the right direction. Also, be sure to check out the resource links at the bottom of the article.

#aws #cloud-computing #audit

Understanding Auditing On The AWS Platform

Understanding Auditing On The AWS Platform

The AWS Management Console, along with the AWS CLI can produce powerful results for auditors across multiple regulatory, standards, and industry authorities. I am going to cover some of the key sources that produce important and meaningful log information that you can use within your audit and compliance program.

You should consider auditing your security configuration in the following situations:

  • On a periodic basis. You should perform the steps described in this document at regular intervals as a best practice for security.
  • If there are changes in your organization, such as people leaving.
  • If you have stopped using one or more individual AWS services. This is important for removing permissions that users in your account no longer need.
  • If you’ve added or removed software in your accounts, such as applications on Amazon EC2 instances, AWS OpsWorks stacks, AWS CloudFormation templates, etc.
  • If you ever suspect that an unauthorized person might have accessed your account.

#aws #cloud-computing #audit

Understanding Auditing On The AWS Platform

Convert Currencies Automatically With Python | Python in Finance#2

A guide on how to convert currencies in your files automatically using Python

What You will learn in this article

  • Convert multiple currencies to one single currency
  • Apply historic exchange rates
  • Apply this on a pandas dataframe

You can find the full script down below.

Let’s get you started!

  1. Download the dataset
  2. Import necessary python packages
  3. Load in the data
  4. Apply currency conversion over the dataset

#audit #currency-exchange #python #programming #automation

Convert Currencies Automatically With Python | Python in Finance#2

Reits Jay


Smart Contract Audit Services | Ethereum, EOS | Immunebytes

Blockchain technology has occupied its leading rank amidst all cutting edge technologies. This made the crypto sector in a progressive way. A smart contract is a set of embedded lines of predefined code. It works automatically when the transaction between the two users is done. Smart Contracts are stored in the public served and it cannot be modified.

A smart contract audit is a review of the code as well as the functionality of the code in regard to the white paper and/or other documentation. It also includes the complete writing of a test suite from scratch to near-100% coverage, and manual verification of any math, with the token issuance mechanism being a very large portion of that.

The transactions are made with the help of a Private key, Public Key, and Smart Contract and happen through the smart contract are preceded by blockchain. Smart Contract does not involve any third-parties. The whole transaction and trade with one and one, hence this exchange is also called Peer-to-Peer (P2P) exchange.

#smartcontractaudit #audit #auditservices

Smart Contract Audit Services | Ethereum, EOS | Immunebytes

Will Quick and Security Ever Meet in DevOps?

The adoption of DevOps by global enterprises has spiked in the last three years. While many companies have shown success by delivering software at break-neck speed, maintaining new security as per industry standards has been a pressing concern for all of them.

But why is this the case?

Traditionally in the waterfall model, security activities of a new software were started just before/after the day of deployment. There was no problem in this process because the delivery cycle itself was a quarter-long activity. But with DevOps, when the lead time is reduced to days, and delivery throughput has increased (at least 10-100 deployment per day), security and compliance teams find it hard to keep up with the pace.


There are two outcomes:

  • The pace of delivery can slow down due to the inability of the Security team to walk with the same velocity
  • Security standards can be given the cold shoulder to deliver critical business features
  • Both the compromising cases are detrimental to any organization, although unequivocally, businesses prefer the second option with attached security risks.
  • Why can’t organizations transfer the idea from “Security or Delivery” to “Security and Delivery”?

Security is essential but not a priority: Software features are seen as a competitive differentiator among enterprises. Security is seen just as a guardrail or as a practice, and usually takes a long time to accomplish, hence is not prioritized.

Time to market is a priority: With increasing pressure to deploy new features to unlock new business opportunities, it is natural to incur risks and implement the feature with non-crippling bugs.

Everyone forgets: (this is my favorite) During my development days, there were few instances when I wrote a code that fulfilled just an immediate requirement but with a fair chance to mushroom new functional issues. Those codes were shipped to production with a thought that defects will be fixed later. Unfortunately, everyone forgot and resulted in technical debt.

Less guidance: There are a few vendors in the market who offer expertise and solutions on secured and continuous delivery.

The Emergence of DevSecOps

The DevOps process runs like a high-speed engine, and stopping it again and again for security checks is ineffective. Thus it is sensible to embed security into DevOps processes and ensure the software is safe and secure in real-time. This idea is called DevSecOps.

DevSecOps can assure organizations that the shipment of their software and services to production are trusted. The practice can ensure the security of applications and infrastructure from the beginning and avoid DevOps workflow from slowing down by using automation.

Let us understand the security types and how they can be integrated into DevOps.

There are three types of security concerns (as defined in State of DevOps report 2019): Vulnerability Risks AvoidancePolicy Controls& Countermeasures, and Audit and Traceability. They play a significant role in zeroing down the business risks during the software delivery runtime.

#devops #continuous delivery #devsecops #ci/cd #continuous deployment #audit #policy #compliance automation #secdevops

Will Quick and Security Ever Meet in DevOps?
Angela  Dickens

Angela Dickens


Why Machine Learning an Audit?

Machine Learning (ML) has been a popular topic in the industry that people are starting to think about potentials in different applications such as R&D, marketing, and you see companies hiring PhDs to develop their machine learning models for either sales forecasting, marketing strategizing, or even some cool stuffs like computer vision for autopilot.

How to use machine learning in an audit? What would be the benefit of using it? It that something only for R&D or marketing? Is this possible to deploy machine learning in the audit? Can internal audits potentially be replaced by some sort of robots to help with selecting samples or reviewing the documents and everything? After months of side projects, I realize that Internal Audit/Finance/Compliance might be one of the functions that you don’t find a direct connection with the ML, but it has much more potential than other functions in a corporate.

Here is why:

(1) Data is the key to ML not the algorithm or the models.

In an audit function, no matter you do IT, finance, or compliance review, you eventually get in touch with a bunch of data:

Sales Data/ Payment Data/ HR Data/ System Log/ Whatever you are auditing

And one key to start to loop in the data science capability and use machine learning is data. You are predicting one feature (independent variable) based on other features (dependent variables).

(2) Internal Audit is looking for outliers and could use some help from ML.

Especially in compliance audits, we are looking for outliers, delayed payment? Weirdly-frequent small amount T&E? Last-minute invoicing? We are looking for all kinds of outliers in general and want to know HOW WEIRD those transactions are, compared to the populations. But we don’t usually have time and knowledge to conduct clustering on all the features. Machine Learning helps you in building a model to predict the outliers based on given information and detects outliers for you.

(3) What we do in audit is labeling things and so does ML.

Through reviewing the transactions, internal audit identifies transactions that are non-compliant with the company policy or practice. We are basically tagging transactions. In traditional analytics, we analyze data and come up with a couple of rulesets that “we think” it can detect the outliers.

What if the outliers are hidden in data that we could not define any ruleset to locate them?

Image for post

traditional analytics use data and rule sets to find out the transactions, while ML uses data and examples to figure out the rule sets.

Using machine learning, we kind of do it in a reverse engineering way: We provide data and examples (probably come from the previous audit where we tagged the non-compliant transactions) and tell the machine to figure out the rulesets itself. ML helps us find a ruleset(s) (can be a regression line, a decision tree, a neural network, or whatever ruleset that helps to label)

#finance #data-analytics #audit #data-science #machine-learning #deep learning

Why Machine Learning an Audit?
Birdie  Daniel

Birdie Daniel


Azure Marketplace Performance Audit

Today I continue my performance audits of Microsoft properties. Today it is the Azure marketplace. Just like the Microsoft Store I noticed the marketplace was slow to respond to request. Again they are suffering from unacceptable time to first byte issues.

#azure #audit #marketplace

Azure Marketplace Performance Audit