Blog

Sitebulb : The Definitive Guide

Sitebulb

Accessibility:

  1. <html> element must have a lang attribute:

Possible issues:

If the language of a webpage is not specified, the screen reader will assume it is the default language. This becomes an issue for users who speaks a different language.

Recommendation:

The HTML document must contain a valid lang attribute.

Solution:

Add a lang attribute to the html element (e.g. <html lang=”en”>).

Example for language info in elements:

<div lang=”fr-CA” xml:lang=”fr-CA”>

Canadian French content…

</div>

<div lang=”en-CA” xml:lang=”en-CA”>

Canadian English content…

</div>

<div lang=”nl-NL” xml:lang=”nl-NL”>

Netherlands, Dutch content…

</div>

2. Form elements must have labels:

  Possible issues:

Adding effective form labels is absolutely necessary to make forms accessible. The purpose of form elements such as checkboxes, radio buttons, input fields, etc. 

In short – to make form element understandable.

Recommendation:

Each form element must have a programmatically associated label element.

Solution:

Put labels to all form controls and ensure there are no duplicate labels. by using an implicit <label>, explicit <label>, aria-label or aria-labeled.

Associate a label to every form element. There are four ways to do so.

Implicit labels:

<label>First Name <input type=”text”/></label>

Explicit labels:

<label for=”first”>First Name <input type=”text” id=”first”/></label>

Aria-label:

<button class=”hamburger-menu” aria-label=”menu”>…</button>

Aria-labelledby:

<span id=”foo”>Select seat:</span>
<custom-dropdown aria-labelledby=”foo”>…</custom-dropdown>

3. Links must have discernible (detectable or noticeable) text 

 Possible issues:

Every link should have an accessible name.

Users who rely exclusively on a keyboard (and no mouse) to navigate a webpage can only click on links that can receive programmatic focus. If a link cannot receive programmatic focus, it will be inaccessible to these users. 

Recommendation:

Link text (and alternate text for images, when used as links) must be discernible by a screen reader, must not have a duplicate label, and must be focusable and get more this type of recommendations from seo company.

Solution:

Ensure all links can receive programmatic focus

Example, avoid device-specific events (e.g. on mouse over).

4. Images must have the alternate text :

  Possible issues:

It’s necessary for images to have short, descriptive alt text so screen reader users clearly understand the image’s contents and purpose.

Recommendation:

All images must have alternate text to make understand their purpose and meaning to screen reader users.

Solution:

All informative <img> elements have short, descriptive alternate text and all decorative <img> elements have empty alt attributes (e.g. alt=””).

5. Elements must have sufficient color contrast :

Possible issues:

Some people with low vision experience low contrast, meaning that there aren’t very many bright or dark areas. Everything tends to appear about the same brightness, which makes it hard to distinguish outlines, borders, edges, and details. Text that is too close in luminance (brightness) to the background can be hard to read. Know better by contacting a seo company.

Recommendation:

All text elements must have sufficient contrast between text in the foreground and background colors behind it in accordance with WCAG 2 AA contrast ratio thresholds(WCAG 2.0 level AA requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Level AAA requires a contrast ratio of at least 7:1 for normal text and 4.5:1 for large text). What is in the WCAG 2 Documents. WCAG 2.0 and WCAG 2.1 are stable, referenceable technical standards. They have 12-13 guidelines that are organized under 4 principles: perceivable, operable, understandable, and robust. For each guideline, there are testable success criteria, which are at three levels: A, AA, and AAA.

Solution:

Use the color contrast analyzer below to find colors that pass the guidelines.

sitebulb 1

sitebulb 2

6. Elements should not have a tab index greater than zero:

 Possible issues:  

The tab index is used to focus on elements. Syntax:tabindex=”numeric_value” This numeric_value is the weight of element. A lower value will be accessed and prioritize first.

Recommendation:

A tab index attribute must never have a value greater than 0 to prevent an unexpected tab order that can give the appearance of skipping some elements entirely.

Solution:

There are two main ways to avoid using tab index with a value greater than 0. The first method is to change the tab index to 0. Note that this may change the order in which the user tabs through the elements. The second method is to remove the tab index entirely and modify the structure of the page so that a user tabbing through elements will reach them in the order initially desired.

Example:

Links with a specified tab order:

<a href=”https://www.w3schools.com/” tabindex=”0″>W3Schools</a>
<a href=”http://www.google.com/” tabindex=”-1″>Google</a>
<a href=”http://www.microsoft.com/” tabindex=”-2″>Microsoft</a>

7. Id attribute value must be unique: 

Possible issues:  

The id attribute uniquely identifies elements on a page.

Recommendation:

The value assigned to the id=”” attribute must be unique to prevent the second instance from being overlooked by assistive technology. Put another way, id attributes may not be used more than once in the same document in order to differentiate each element from another.

Solution:

Rename attributes that reuse an id.

The id attribute specifies its element’s unique identifier (ID). The value must be unique amongst all the IDs in the element’s home subtree and must contain at least one character. The value must not contain any space characters

Example:

Use the id attribute to manipulate text with JavaScript:

<html>
<body>

<h1 id=”myHeader”>Hello World!</h1>
<button onclick=”displayResult()”>Change text</button>

<script>
function displayResult() {
document.getElementById(“myHeader”).innerHTML = “Have a nice day!”;
}
</script>

</body>
</html>

8. Canonical :

Multiple canonical tags :

Possible issues:

This means that the URL in question has a canonical element specified in multiple locations (either in the HTML, in the HTTP header, or in a combination of both).

Examples that trigger this Hint:

Consider the URL: https://example.com/

The Hint would trigger for this URL if it had multiple canonicals defined, whether or not the canonical URLs were the same;

Two canonical tags in the <head>:

<!doctype html>
<html lang=”en”>
<head>
<title>example</title>
<link rel=”canonical” href=”https://example.com/” />

<link rel=”canonical” href=”https://example.com/” />
</head>
<body>…</body>
</html>

OR one canonical tag in the <head>:

<link rel=”canonical” href=”https://example.com/page-b” />

AND one canonical in the HTTP header

HTTP/… 200 OK


Link: <https://example.com/page-c>; rel=”canonical”

Recommendation:

Solution:

Examine the source of each URL in the table below to try to identify how each of the multiple rel=canonical tags was added to the page. Once you’ve identified the source, you’ll want to disable it in that specific tool’s settings or source.

9. Canonical points to a different internal URL: 

 Possible issues:

If Page A is canonicalized to Page B, it is explicitly marking Page B as it’s canonical. This acts as a strong signal to search engines that these two pages should be considered duplicate and that Page B should be prioritized.

It is important to note that a canonical is not a robots directive, so search engines may choose to ignore a designated canonical if they disagree with it. However, assuming that search engines honor the canonical, this means that Page A may become deindexed, and Page B will consolidate link signals (i.e. if Page A has some external links pointing at it, Page B will get the value for these links).

Recommendation:

URLs that specify a canonical URL which is not self-referential, and instead points to another internal URL. This Hint is flagged as Advisory as it could be the case that nothing is actually wrong here – canonicals are used as a valid means of avoiding duplicate content issues – so you may simply wish to check that the canonicals are pointing at the ‘right’ URLs.

Solution:

In Sitebulb, if this Hint is Advisory, as it does not represent a clear issue. Canonicals implemented in this manner are usually deliberate, so they are flagged in Sitebulb in order to draw your attention to the URLs that have been canonicalized, so you can double check that they have been implemented correctly.

While Sitebulb can check if a canonical tag is valid, it has no way of knowing for sure that Page B should be the canonical URL for Page A.

Examples that trigger this Hint:

Consider the URL: https://example.com/page-a

The Hint would trigger for this URL if it had either of the following;

Canonical link in the <head> to another internal URL:

<link rel=”canonical” href=”https://example.com/page-b” />

OR HTTP Header canonical link to another internal URL:

HTTP/… 200 OK

Link: <https://example.com/page-b>; rel=”canonical”

Similarly, consider the URL: https://example.com/page-a?colour=red

The Hint would trigger for this URL if its canonical URL was the unparametrised version of the URL (or indeed any other internal URL);

Canonical link in the <head> to the unparametrised URL:

<link rel=”canonical” href=”https://example.com/page-a” />

OR HTTP Header canonical link to the unparametrised URL:

HTTP/… 200 OK

Link: <https://example.com/page-a>; rel=”canonical”

No index found on rel Next/Prev Paginated URL :

Possible issues:

If pages have been no indexed for a long time, after a while Google will stop crawling them and hence, stop following links.

Recommendation:

You may wish to mark up a page as paginated, but also noindex it as you feel it offers a poor user experience. However, it is flagged in Sitebulb just in case this is not deliberate, and valuable content is being no indexed.

Solution:

This Hint will trigger for any internal URL which uses next/prev elements, and also uses the noindex directive.

Examples that trigger this Hint:

Consider the paginated URL: https://example.com/page-a?p=3

The Hint would trigger for this URL if it contained both rel=next/prev and a noindex in the <head>:

<!doctype html>
<html lang=”en”>
<head>
<title>example</title>
<link rel=”next” href=”https://example.com/page-a?p=6″ />
<link rel=”prev” href=”https://example.com/page-a?p=4″ />
<meta name=”robots” content=”noindex, follow” />

</head>
<body>…</body>
</html>

The above example shows the tags defined in the HTML, but this would also trigger if they were defined using HTTP headers (or some combination of the two methods).

10. External URLs:

Broken external URL (4XX or 5XX) :

Possible issues:

URLs on the external domain, which are linked by internal URLs, that weren’t successfully monitored, if they are broken or not. This includes crawl statuses of Not Found, Error, Forbidden and Timeout.

Recommendation:

Analyze data and decide which pages should be redirected or removed

Solution:

Remove those external links which are broken

11. Front-end:

 Does not contain any HTML when JavaScript is turned off 

Possible issues:

Contains Some Content When Its Scripts Are Not Available

Recommendation:

Enable JavaScript

Solution:

enable JavaScript in a web browser

 12. Logs messages in the browser’s console: 

 Possible issues:

Console messages are good for debugging during development and should be removed when in the live environment. Writing to the console can be costly, especially when logging large object variables.

Recommendation:

It helps for debugging purposes

 13. Document Compatibility Mode Meta Position Invalid :

Possible issues:

The positive of the document compatibility mode meta tag is set too low in the <head>. The meta tag should be included before the <title> and the other <meta> tags.

Recommendation:

Add Document Compatibility Mode Meta into the head

Solution:

<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>

14. Missing <noscript> tag in the <body> :

Possible issues:

The URL uses JavaScript, but does not include a <noscript> tag as a fallback in case the user has JavaScript disabled. It will give this error while checking the tag in Google Tag Assistant: Missing <noscript> tag.

Recommendation:

Enable JavaScript in your browser

Solution:

For chrome- go to setting

Search for JavaScript

Select content Setting

Then Check to allow JavaScript

15. Document Compatibility Mode Not Set 

Possible issues:

Setting the document compatibility mode, allows you to control what rendering engine Internet Explorer uses.

Recommendation:

Set Document Compatibility Mode into the <head>.

Solution:

<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>

16. Contains an uppercase attribute :

 Possible issues:

The URL contains an element which contains uppercase letters.

Recommendation:

Remove the upper case element and having clean, standardized code makes it easier for other developers to work on, and makes the code easier for search engine crawlers and browsers to parse.

Solution:

Example:

http://example.com/ContactUs.

To

http://example.com/contactus.

17. Contains duplicate element id values :

Possible issues:

One or more DOM(Document Object Model) elements contain a duplicate id attribute value.

Recommendation:

Assign different values to the ids

 18. URL contains no Google Tag Manager code: 

Possible issues:

Google Tag Manager is a free tool that makes it easy for marketers to add and update website tags — including conversion tracking, site analytics, remarketing, and more—with just a few clicks, and without needing to edit your website code.

for example Adwords Conversion Tracking and Google Analytics.

It improves website speed

Easy to use

No need for a developer

Recommendation:

This Hint becomes useful when you audit a site that does actively use GTM, as it will highlight the URLs for which the GTM code is not present, allowing you to check and potentially fix this.

Solution:

The Hint would trigger for any URL which does NOT contain the following in the <head>:

<!– Google Tag Manager –>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({‘gtm.start’:
new Date().getTime(),event:’gtm.js’});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!=’dataLayer’?’&l=’+l:”;j.async=true;j.src=
‘https://www.googletagmanager.com/gtm.js?id=’+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,’script’,’dataLayer’,’GTM-XXXX’);</script>
<!– End Google Tag Manager –>

AND does NOT contain the following in the <body>:

<!– Google Tag Manager (noscript) –>
<noscript><iframe src=”https://www.googletagmanager.com/ns.html?id=GTM-XXXX”
height=”0″ width=”0″ style=”display:none;visibility:hidden”></iframe></noscript>
<!– End Google Tag Manager (noscript) –>

19. Internal URLs:

Broken internal URLs: 

Possible issues:

All internal URLs that weren’t successfully audited. This includes crawl statuses of Not Found, Error, Forbidden and Timeout.

Recommendation:

Detect and remove invalid URLs using Google Webmaster Tools

20. International:

 Missing hreflang annotations :

Possible issues:

URLs that are not specified as translations through hreflang annotations (which may be intentional).

Recommendation:

Add an hreflang annotations

Solution:

sitebulb 3

21. Missing HTML lang attribute: 

Possible issues:

Indexable URLs that have not defined the language/region attribute using HTML lang.

Recommendation:

Use lang attribute for different users as per their region.

Solution:

Example:    Some French text in a paragraph:

              <p lang=”fr”>Ceci est un paragraph.</p>

 22. Has an anchored image with no alt text: 

Possible issues:

When looking at linked images, the alt text is considered equivalent to anchor text and represents an opportunity to communicate meaning and context to search engines.

Recommendation:

Put an alt name or the description of the anchored image

Solution:

The code:

<img src=”image.gif” alt=””/>

This code simply displays the image.

Required Attributes: 

src path/filename of the image

alt Brief description of the image

23. Has a link with no href attribute: 

Possible issues:

These type of links are often used as internal jump points since anchor tags which have no href attribute can be used for internal anchors.

Recommendation:

either add an href attribute or avoid to use internal jumping point.

Solution:

Examples that trigger this Hint:

This Hint would trigger for a URL with any <a> tag that does not contain the href attribute:

<a id=”internal-anchor”>Anchor Text</a

24. Has only one followed internal linking URL :

Possible issues:

Internal Linking is the important thing and the main way you help users and search engine crawlers find pages on your website. Get more info from a seo consultant.

Recommendation:

Add more internal links

Solution:

<a href=”#top”>link to top</a>

Notice the hash mark (#). That tells the browser that it’s a section of a page it’s looking for, and not a separate page or folder.

25. Has incoming followed links that do not use descriptive anchor text: 

Possible issues:  

This means that the URL in question receives incoming followed links from other internal URLs, which do not use descriptive anchor text (they instead have anchor text like ‘click here’, go’, ‘here’, etc…).

Recommendation:

Add more description to the incoming followed link’s anchor text.

26. URL is orphaned and was not found by the crawler :

 Possible issues:

Orphaned URLs essentially have no internal links, so the crawler cannot find the pages on its own. Orphaned pages have come from a different crawl source: XML Sitemaps, URL Lists, Google Analytics or Google Search Console.

Recommendation:

Link internally to an orphaned page.

27. Has one or more outgoing followed links with nondescriptive anchor text 

 Possible issues:

Internal linking is the main way you help users and search engine crawlers discover pages on your website. From an SEO perspective, internal links are the most effective method of indicating to search engines the relative Possible issues of pages on your website.

Recommendation:

Add more description to the anchor text

28. Has an internal link with no anchor text: 

Possible issues:

Anchor text is the visible, clickable text in the hyperlink (which is normally blue in the browser), and search engines use anchor text to provide context about the link’s destination.

SEO-friendly anchor text is succinct (clearly expressed) and relevant to the target page.

Recommendation:

Add an anchor text to the internal links.

Solution:

<a href=”http://www.same-domain.com/” title=”Keyword Text”>Keyword Text</a>

29. Has no outgoing links: 

 Possible issues:

Outgoing links are links that point to some other domain from within your site. Your site should contain outbound links. If you don’t have any outgoing links, it might affect your ranking negatively.

Recommendation:

Add outgoing links and change the link structure

30. Has an anchored image with no alt text: 

Possible issues:

Alt text is important to understand the purpose of the anchored image

Recommendation:

Add alt=”text” to an anchored image

31. Has only one followed internal linking URL: 

Possible issues:

More internal links will help user and crawler to find your page easy and effectively. On keyword basis internal linking, by keeping in mind that the prior page or the page which has the majority of the weight should get more link juice than the other pages  

Recommendation:

Add more Internal Links to the site

32. Total page size too big for 3G connections: 

Possible issues:

The total byte size of the page and all the resources is greater than 1600KB, which is theoretically too big for a time-to-interactive of 10 seconds on a 3G connection.

Recommendation: 

Reduce page size to a particular requirement.

33. Missing viewport <meta> tag in the <head>: 

 Possible issues:

Without a viewport meta tag, mobile devices render pages at typical desktop screen widths, and then scale the pages to fit the mobile screens. Setting the viewport enables you to control the width and scaling of the viewport.

Recommendation:

Add a viewport meta tag into the head section to render pages as per the mobile screen requirement. SEO services company can provide you more useful recommendations like this.

Solution:

<meta name=”viewport” content=”width=device-width, initial-scale=1″>

 34. Font size is too small for mobile devices: 

Possible issues:

The text of these pages is too small and not legible for mobile devices. It will lead to bad user experience.

Recommendation:

On mobile text should be 110% (of our default 16px). This means that the text is easily readable on different sized screens

35. URL received no tablet organic search traffic: 

 Possible issues:

URLs that received no organic search traffic from tablet devices

Recommendation:

Change the website layout as per tablet screen requirement.

36. URL received no mobile organic search traffic: 

 Possible issues:

In the current situation, the mobile user percentage is higher than the desktop user

So the website also needs to be responsive to many devices including mobile.

Recommendation:

make the webpage responsive from which the user can browse through their mobile phone

Solution:

use bootstrap to make responsive page

sitebulb 8

37. Average time on the page less than or equal to 10s; 

  Possible issues:

User needs to spend more time on the page.

Recommendation:

Serve high-quality content or make webpage interface user-friendly, reduce crawl depth

38. Had bounce rate greater than or equal to 80%: 

Possible issues:

The percentage of visitors to a particular website who navigate away from the site after viewing only one page is called bounce rate.

Recommendation:

Reduce the bounce rate.

Solution: 

1. Optimize Page Load Time

2. Make Your Content More Accessible with Smart Formatting

3. Use Sidebar Widgets and Promotions Sparingly

4. Cross-Reference Bounce Rate with Time on Site

5. Optimize for Relevance

6. Include a Single, Clear Call to Action

7. Use a Logical – and USEFUL – Internal Linking Structure

8. Rework Your Product Pages

9. Make Your Site Easy to Search

10. Optimize for Mobile

11. Make Your Site’s Navigation Effortless

 39. Noindex URL received organic search traffic:

 Possible issues:

URLs that are noindex yet received organic search traffic.

 40. Not Found (4XX) URL received search traffic: 

Possible issues:

URLs that are Not Found (4XX), yet received organic search traffic.

41. Resources that do not specify cache headers :

 Possible issues:  

Resource URLs, such as images or JavaScript files, that do not specify a cache header. Fetching something over the network is both slow and expensive. Large responses require many roundtrips between the client and server, which delays when they are available and when the browser can process them, and also incurs data costs for the visitor. Setting a cache header on your server response will tell the browser that it doesn’t need to download assets again, which avoids unnecessary requests to the server.

Recommendation:

use gzip compression 

42.  Uncompressed text content resources: 

  Possible issues:

The URL contains text content which has not been compressed. Text compression minimizes the byte size of network responses that include text content.

Recommendation:

Compressing text content with gzip saves download bytes and reduces bandwidth for the user.

43. Avoid too many synchronous JavaScript requests :

 Possible issues: 

For every JavaScript file that the browser needs to load, it will send a separate HTTP request to the server. If these are synchronous requests then the browser will need to allow each one to finish before moving on to the next. Fewer files mean fewer requests, and therefore a faster load speed.

Recommendation:

Run asynchronous JavaScript alongside with it.

44. Critical (Above-the-fold) CSS was found in the <head> but not loaded early enough: 

 Possible issues:

The URL includes critical CSS content in the <head>, but it is not being loaded early enough. Critical CSS should be rendered before any JavaScript or style sheets, and ideally immediately after critical Metadata. Know more issues like this from seo specialist.

Recommendation:

Put the critical CSS files at the very starting of the code in the head tag

45. Loads oversized images which are scaled in the browser :

Possible issues:

Ideally, the page should never serve images that are larger than the version that’s rendered on the user’s screen. Anything larger than that just results in wasted bytes and slows down page load time.

Recommendation:

Specify the scaling to every image or resize the image according to the required resolution.

Solution:

img {

    width: 200px;

    height: 400px;

}

46. Transferred image size is over 100KB :

 Possible issues:  

If the transferred image size exceeds its limit, page loading speed will be decreased gradually.

Recommendation:

limit the transferred image size within 100kb

Solution:

compress the image

47. DOM width exceeds the recommended 60 nodes wide (google preference 32 nodes):

 Possible issues:

DOM(Document Object Model)  is an API(application programming interface) that treats an HTMLXHTML, or XML document as a tree structure wherein each node is an object representing a part of the document.

Here node represents any HTML elements like <html>,<title>,<h1> etc.

For instances:

<html>

<head>

</head>

<body>

<p>this is</p>

<p>an</p>

<p>example</p>

</body>

</html>

In the above mention red marked tags indicates some elements are used several times. You may use the elements as many time as you want but it will only represent just a single node.

Parsing: basically parsing is traversing every node in DOM.

A model used for parsing is

URI->RDF->Ontology

Also, we can say that parsing is finished after verifying three steps

Which are:

URI(Universal Resource Identifier) use to identify

48. RDF(Resource Description Framework) use to decode:

Ontology:

If a webpage takes too much time in parsing, which also means that particular webpage’s FTB(first to byte ) will be high.

From the SEO perspective if the FTB is high then Page speed performance will be low.

Recommendation:

DOM should be within 1600 and Nodes should be within 32 as per google recommendation, then the parsing time will get low and for the result, FTB (First time to byte) will be low.

Solution:

Remove unnecessary nodes  

49. Loads off-screen images that appear below the fold: 

 Possible issues:

Offscreen images are those that appear below-the-fold, which users cannot see these images when the page has loaded. Downloading the during initial request will give you slow page load times and time to interactive

Recommendation:

 It is recommended you lazy load the below-the-fold with JavaScript,

50. Contains one or more single point of failures (SPOF): 

 Possible issues:

A single point of failure (SPOF) is a part of a system that, if it fails, will stop the entire system from working. In this situation, If you load 3rd party JavaScript, CSS or fonts synchronously inside the HTML <head>, these files could fail to load and stop the entire page from loading.

51. Too many requests per domain: 

 Possible issues:

When using HTTP/1, browsers have a limit on how many concurrent requests they can do per domain. Once this limit is hit, the browser will need to wait before it can download more assets on that domain – so avoid this additional wait time by having fewer requests per domain.

Recommendation:  

this hint can be ignored for any website implementing HTTP/2.

52. Server response too slow with a Time-to-First-Byte greater than 600ms :

 Possible issues:

First time to byte plays a very important role in SEO it determines the page loading speed, how much time it needs to load the first byte.

Recommendation:

It’s better to keep FTB less than 200ms

 53. Total combined Image content size is too big (over 1MB): 

 Possible issues:

Image content size should be less. Higher or equal to 1 mb will affect the page loading speed. It will take time to load the page.

Recommendation:

Use image compression. Make it less in size.

Solution:

Try different tools to compress image

54. Loads in too many web fonts: 

 Possible issues:

Web font is extremely easy to use and also make your websites look astonishing. But the downside is web fonts always affect performance, in some cases making them load very inefficient and slow.

Recommendation:

Ideally, you shouldn’t be loading any more than five web fonts.

 55. HTML content is not minified: 

 Possible issues: 

Minify is a programming term that basically means to remove any unnecessary characters that are not required for the code to execute. Minifying your code speeds up your page loading, making visitors and search engines happy.

Recommendation:

Remove unnecessary characters.

Solution:

You could parse the HTML code into a DOM tree (which should keep content whitespace in the nodes), then serialize it back into HTML, without any prettifying spaces.

Minifying your code removes:

White space characters

New line characters

Comments

Block delimiters

Example:

56. CSS content is not minified: 

 Possible issues:

Minify is a programming term that basically means to remove any unnecessary characters that are not required for the code to execute. Minifying your code speeds up your page loading, making visitors and search engines happy. Get rid of from this type of technical issues from seo consultant service.

Recommendation:

Remove unnecessary characters

Solution:

Minifying your code removes:

White space characters

New line characters

Comments

Block delimiters

Example:

.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}

57. JS content is not minified :

 Possible issues: 

Minify is a programming term that basically means to remove any unnecessary characters that are not required for the code to execute. Minifying your code speeds up your page loading, making visitors and search engines happy.

Recommendation:  

Remove unnecessary characters

Solution:

Minifying your code removes:

White space characters

New line characters

Comments

Block delimiters

Example:

Before:

function sum(num1, num2) {    return num1 + num2;}

After:

function sum(A,B){return A+B;}

 58. Keep-alive not set on page resources that are used multiple times :

Possible issues:

Sending multiple requests to the same domain

Recommendation:  

use keep-alive headers so the connection is not closed until all the requests are made.

59. Style Sheet content is greater than 14.5kB: 

 Possible issues:

The browser can download the CSS faster if each CSS response is small (less than 14.5 kB), so the page will start to render earlier.

Recommendation:

To make pages load faster, limit the size of the data (HTML markup, images, CSS, JavaScript) that is needed to render the above-the-fold content of your page. There are several ways to do this:

Structure your HTML to load the critical, above-the-fold content first

Reduce the amount of data used by your resources

60. Character Set Not Specified In Head or Headers: 

Possible issues: 

Specifying a character set in HTTP headers can speed up browser rendering.

Recommendation:

declare a charset=” ” type like utf8, ISO-8859-1  into the header. <head>

Solution:

Content-Type: text/html; charset=utf-8

 61. Character Set missing from the HTTP Headers: 

 Possible issues:

A charset is not declared in the head section, it will affect the browser rendering speed. Apply latest seo techniques for better result.

Recommendation:  

Implement a charset and specify the charset data type.

Solution:

Content-Type: text/html; charset=utf-8

62. Critical (Above-the-fold) CSS was not found: 

Possible issues:

The URL does not include critical CSS content in the <head>

Recommendation:

Optimize the critical rendering path by inlining critical CSS in the <head>, which allows above-the-fold content to render in the browser without waiting for the rest of the CSS to load.

 63. Have an excessive number of DOM nodes (greater than 1500): 

Possible issues:

The Document Object Model (DOM) is a programming API for HTML and XML documents. It defines the logical structure of documents and the way a document is accessed and manipulated.

Recommendation:

Dom nodes should be within 1600.

64. Style sheets are not loaded first in the <head>: 

Possible issues:

One or more of the Stylesheet <link> elements in the <head> are loaded after a <script> element, causing the page to render slower.

Recommendation:

Move the entire Style sheets element on the top of the head before JS files or any other files.

  65. External redirected URLs: 

 Possible issues:

A redirected URL, typically 301 (permanent) or 302 (temporary) means that the location of the page has changed, and the user is sent from the original URL to a new one. Since content gets changed and moved all the time, it is relatively common for redirects to occur, however, they make the experience worse for users.

Recommendation:

Considering how little control we have over external URLs – which can change all the time without our knowledge – we would consider this a low priority to deal with.

66. External URL redirect broken (4XX or 5XX) :

Possible issues:

 In the case of the destination URL being 5XX, it might be that nothing is actually wrong, and the server happened to be unresponsive at the time the request was made. However, typically the case is that redirects point at 404 pages, which certainly do need to be resolved.

Recommendation:

If a URL is redirecting to a resource that no longer exists, then this needs to be handled in one of two ways:

Repoint the redirect– if there is another URL which could serve as a replacement, point the redirect to this replacement URL, and correct all incoming links to point to the replacement page.

Remove the redirect– if you cannot find a replacement resource, remove all incoming links to the redirected URL.

67. Has a noindex and nofollow directive: 

Possible issues:

If a robots.txt has no noindex and nofollow directives then the bot will not crawl the page. If the bot can’t crawl the page then there will be no indexing of the page also.

Recommendation:

Give directives to noindex and nofollow

Solution:

Noindex: Tells a search engine not to index a page.

Nofollow: Tells a crawler not to follow any links on a page or pass along any link equity.

 68. Referrer-Policy HTTP header is missing: 

Possible issues:

Referrer Policy is a new header that allows a site to control how much information the browser includes navigations away from a document and should be set by all sites.

Recommendation:

It will never pass the header information.

Solution:  

no-referrer

The no-referrer value instructs the browser to never send the referer header with requests that are made from your site. This also includes links to pages on your own site.

Referrer-Policy: no-referrer

69. Strict-Transport-Security HTTP (HSTS) header is missing: 

 Possible issues:

HTTP Strict Transport Security (HSTS) is a web security policy mechanism that helps to protect websites against protocol downgrade attacks and cookie hijacking. … The HSTS Policy is communicated by the server to the user agent via an HTTPS response header field named “StrictTransportSecurity“.

 HTTP Strict Transport Security (HSTS) strengthens your implementation of TLS by getting the User Agent to enforce the use of HTTPS. Use best seo strategies to rectify this issue.

Recommendation: 

By contacting the webhotser and requesting to add SSL for security purposes

Solution:

sitebulb 5

70. X-Content-Type-Options HTTP header is missing: 

Possible issues:

Nice and easy to configure, this header only has one valid value, no sniff. It prevents Google Chrome and Internet Explorer from trying to mime-sniff the content-type of a response away from the one being declared by the server. It reduces exposure to drive-by downloads and the risks of user-uploaded content that, with clever naming, could be treated as a different content-type, like an executable.

Recommendation:

Add X-Content-Type-Options HTTP Header

Solution:

NginX

add_header X-Content-Type-Options “nosniff” always;

Apache:

Header always set X-ContentType-Options “nosniff”

 71. Content-Security-Policy HTTP header is missing or invalid: 

 Possible issues:

The HTTP Content-Security-Policy response header allows web site administrators to control resources the user agent is allowed to load for a given page. With a few exceptions, policies mostly involve specifying server origins and script endpoints. This helps guard against cross-site scripting attacks (XSS).

Recommendation:  

Put Content-Security-Policy HTTP in the header. By whitelisting sources of approved content, you can prevent the browser from loading malicious assets.

Solution:

Example: Disable unsafe inline/eval, only allow loading of resources (images, fonts, scripts, etc.) over https:

// headerContent-Security-Policy: default-src https: // meta tag<meta http-equiv=”Content-Security-Policy” content=”default-src https:”>

72. Leaks server information useful for compromising servers: 

Possible issues:  

Servers will commonly reveal what software is running on them, what versions of the software are on there and what frameworks are powering it. Reducing the amount of information you divulge is always a benefit.

Recommendation:

Change the value of the server header.

Solution:

sitebulb 6

PHP

Nice and easy in PHP, all we need to do is edit one line of config and restart PHP.

sudo nano /etc/php5/fpm/php.ini

Locate the following line and change it from this:

expose_php = On

To this:

expose_php = Off

Save the changes to your ini file and restart PHP.

sudo service php5-fpm restart

X-AspNet-Version

The X-AspNet-Version header pretty much just does what it says on the tin. It discloses the specific version of Asp.NET you’re running, so it has to go! Another really easy header to get rid of, it only requires a minor change in your web.config file.

<system.web>

<httpRuntime enableVersionHeader=”false” />

</system.web>

73. X-Frame-Options HTTP header is missing or invalid: 

 Possible issues:

The X-Frame-Options header, or XFO header, protects your visitors against clickjacking attacks. An attacker can load up an iframe on their site and set your site as the source, it’s quite easy: <iframe src=”https://scotthelme.co.uk”></iframe>.

X-Frame-Options tells the browser whether you want to allow your site to be framed or not. By preventing a browser from framing your site you can defend against attacks like clickjacking.

Recommendation:

Recommended value “x-frame-options: SAMEORIGIN”.

Solution:

NginX:

add_header X-Frame-Options “SAMEORIGIN” always;

Apache:

Header always set X-Frame-Options “SAMEORIGIN”

74. X-XSS-Protection HTTP header is missing or invalid: 

 Possible issues:  

X-XSS-Protection sets the configuration for the cross-site scripting filter built into most browsers.

This header is used to configure the built-in reflective XSS protection found in Internet Explorer, Chrome and Safari (Webkit). Valid settings for the header are 0, which disables the protection, 1which enables the protection and 1; mode=block which tells the browser to block the response if it detects an attack rather than sanitizing the script.

Recommendation: 

 Recommended value “X-XSS-Protection: 1; mode=block”.

Solution:

NginX:

add_header X-Xss-Protection “1; mode=block” always;

Apache:

Header always set X-Xss-Protection “1; mode=block”

75. Has JavaScript served via a CDN without subresource integrity: 

 Possible issues:  

A CDN is in control of some or all of the JavaScript files on this URL, which means a third-party could make unwanted changes to the script. Using a specification called Subresource Integrity, a website can include JavaScript that will stop working if it has been modified.

Recommendation:

Use Subresource Integrity

Solution:

Subresource Integrity with the script element

You can use the following <script> element to tell a browser that before executing the https://example.com/example-framework.js script, the browser must first compare the script to the expected hash, and verify that there’s a match.

<sript src=”https://example.com/example-framework.js”;integrity=”sha384-oqVuAfXRKa7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC”; crsorigin=”anonymous”></script>

76. Has style sheets served via a CDN without subresource integrity: 

 Possible issues:

A CDN is in control of some or all of the style sheets on this URL, which means a third-party could make unwanted changes to the script. Using a specification called Subresource Integrity, a website can include CSS that will stop working if it has been modified.

Recommendation:

Use Subresource Integrity

Solution: 

Subresource Integrity with the script element

You can use the following <script> element to tell a browser that before executing the https://example.com/example-framework.js script, the browser must first compare the script to the expected hash, and verify that there’s a match.

<sript src=”https://example.com/example-framework.js”;integrity=”sha384-oqVuAfXRKa7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC”; crsorigin=”anonymous”></script>

77. Loads page resources using protocol relative URIs: 

 Possible issues:

Protocol relative syntax has become relatively common over the last few years, as HTTPS adoption has spread, as it conveniently eliminates the need for developers to construct URLs based on the user’s current security context.

However, allowing the snippet to request over HTTP opens the door for attacks like the Github Man-on-the-side attack. It’s always safe to request HTTPS assets even if your site is on HTTP; however, the reverse is not true.

Recommendation:

You need to only use https:// URLs when loading resources on your page. For each URL that loads protocol relative resources, update the resource references to point to the HTTPS counterparts, using absolute URIs.

In some cases, you may find that the resources in question are not available over HTTPS, in which case seek to do one of the following:

Include the resource from a different host, if one is available.

Download and host the content on your site directly, if you are legally allowed to do so.

Exclude the resource from your site altogether.

Solution:

Loading a resource using protocol relative URIs allow it to be requested over HTTP and opens the door for Man-on-the-side attacks. If a resource is available over SSL, then always use the https:// URI.

Example:

JavaScript resource link using protocol relative URI:

<script src=”//code.jquery.com/jquery-2.2.3.min.js”></script>

CSS resource link using protocol relative URI

<link href=’//fonts.googleapis.com/css?family=Istok+Web’ rel=’stylesheet’ type=’text/css’>

Image resource src using protocol relative URI:

<img src=”//example.com/img/logo.png”>

78. Has external opener links vulnerable to tabnapping: 

Possible issues:

Contains links to external URLs that use target=’_blank’ to open a new tab/window. The browser opens a new tab for the link, but also, for a very brief moment, allows the new tab to communicate with the original tab using a browser feature called the window. opener API.

 An attacker can place malicious code on the newly opened website, check the source of the click, and force the original tab to open a new URL.

Recommendation:

Identify and remove these kinds of external links from your website.

Solution:

Example attack: create a fake “viral” page with cute cat pictures, jokes or whatever, get it shared on Facebook (which is known for opening links via _blank) and every time someone clicks the link – execute

window.opener.location = ‘https://fakewebsite/facebook.com/PHISHING-PAGE.html’;

…redirecting to a page that asks the user to re-enter her Facebook password.

 Add this to your outgoing links:

rel=”noopener”

Update: FF does not support “noopener” so add this.

rel=”noopener noreferrer”

Remember, that every time you open a new window via window.open(); you’re also “vulnerable” to this, so always reset the “opener” property

var newWnd = window.open();newWnd.opener = null; 

 79. Have images with missing alt text: 

 Possible issues:  

alt=”text” Shows the image purpose or a brief description.

Recommendation:  

Put an alt=”text” into the field.

 Solution:

By adding text inside image alt attribute in your html code-

<img src=”image/logo.jpg” alt=”company logo”>

80. Meta description missing or empty: 

 Possible issues:

The meta description tag is found in the <head> of a page’s HTML source and is used to provide a brief description of the page’s content. Having a good meta description is crucial to the SEO success of your site. It doesn’t matter how high your page ranks if the snippet is poorly-written, your click-through rate will be low which will lead to very little traffic to your site.  Know more about this issue from best seo firm.

Recommendation: 

If a URL is listed in the table below, this means that there was no meta description content found on the page. This could mean one of two things — either the tag is missing completely, or it was left blank with no content (e.g. <meta name=”description” content=””/>).

Solution: 

Add meta description and the content.

<meta name=”description” content=”A page’s description,   usually one or two sentences.”/>

81. Title tag length too short :

 Possible issues:  

Title tag length should be in a range.

Recommendation:

A title tag should be between 50 or 60 char.

Solution:  

 add more length to the char input.

<head>

   <title>Example of a short title</title>

    …

 </head>

82. <h1> length too short: 

 Possible issues:

<h1> tag is an important thing to SEO; it helps the user and the search engine to understand what is the website is all about or about the content in the website.

Recommendation:

Word length should be greater than 3 and less than 11.

Solution:

Short <h1>

<h1>Example h1</h1> 

Recommended <h1> 

<h1>This is an example h1 on an example page</h1> 

83. <h1> length too long : 

 Possible issues:

<h1> tag is an important thing to SEO; it helps the user and the search engine to understand what is the website is all about or about the content in the website.

Recommendation:

Word length should be greater than 3 and less than 11.

Solution:

 Long <h1> <h1>This is an example h1 on an example page that is too long</h1>

Recommended <h1>

<h1>This is an example h1 on an example page</h1> 

84. Title tag length too long: 

 Possible issues:

Title tag length should be in a range.

Recommendation:

Title tag should be between 50 or 60 char.

Title tag input should be within given range.

<head>

   <title>Example of a rather long title that meanders around and does not concisely communicate wtf the page is about</title>

    …

 </head>

 85. <h1> tag missing or empty :

Possible issues:

If the h1 is empty, this represents a missed optimization opportunity.

Recommendation:

Heading is necessary for a page. Give a heading between <h1></h1>.

Solution:

give a value within empty <h1> tags

<h1></h1>

86. Meta description length too short: 

 Possible issues: 

The meta description is considered important to help users quickly understand what content they can expect to find on the page when clicking through from the search engine results page. Well written meta descriptions typically achieve a better click-through-rate.

If the meta description uses too few characters, it may not be sufficient to effectively communicate the desired message.

Recommendation:

 keep the word count between below mention range

Too long – Over 156 characters 

too short – Below 70 characters

Solution:

 <meta name=”description” content=”Example of a particularly short meta description”>

87. Title tag missing: 

 Possible issues:

The title tag is considered one of the most important on-page SEO factors, so if it is missing this represents an issue that may affect search engine rankings and click-through-rate from the search results.

Recommendation:  

set a title tag

Solution:

<title>Put the title of your page here</title>

 88. URL in multiple XML Sitemaps: 

Possible issues:

URLs that are included in more than one XML Sitemap. Get best info from a top seo agency.

A sitemap is a file where you can list the web pages of your site to tell the search engines about the organization of your site content.

The Sitemap does not affect the normal way crawler bots index your page – it just extends the visibility and accessibility of your content.

Recommendation:

Use a single sitemap for individual URL.

  •  
  •  
  •  
  •  

One thought on “Sitebulb : The Definitive Guide

  1. Wonderful blog! Do you have any recommendations for aspiring writers? I’m hoping to start my own website soon but I’m a little lost on everything. Would you propose starting with a free platform like WordPress or go for a paid option? There are so many choices out there that I’m totally confused .. Any ideas? Kudos!

Leave a Reply

Your email address will not be published. Required fields are marked *