Link is not found on the page OR placed outside of BODY and HTML tags

Last update: 03.07.2024

Link is not found on the page OR placed outside of BODY and HTML tags

Follow all of the following instructions step by step.


  1. THE MOST COMMON REASON FOR ERRORS - links are located between NOINDEX tags, or NOINDEX tags are incorrectly placed (for example, opened twice but closed only once). Open the source code of your page in the browser and count the number of opened NOINDEX (<noindex>) and closed (</noindex>) tags. The number should match. If the number matches, check if the links are not inside noindex to avoid this construction: <noindex>LINKS</noindex>.

  2. Check if the links are in the indexable zone of the document accessible to search engines. If links are closed for indexing by any of the following methods, they will not be found by our system's robot.

Links are closed for indexing using tags <noindex>, <!--noindex-->, <script>, <frames>, <applet>, <embed>, <object>, form tags, or comments.

The page where the links are placed is closed for indexing in the robots.txt file or in meta tags.

The nofollow attribute is added to the link's code.

When checking for links on pages, the robot receives an HTTP header response code different from 200 from your server's headers.

Links are not placed inside the <marquee> tag.

Links are placed outside the <html> and <body> tags. For a correct link check, the <html> and <body> tags should appear in the page's code once, and the links should be placed between these tags. If this is not the case, you need to fix the situation: place the links inside the tags. Proper link placement should be like this:

<html>

<body> 

    <!-- links -->

    </body>

</html>

   3. It is possible that your website engine (or some installed module) automatically closes external links with noindex tags or adds the nofollow attribute to the link. Often, links are closed to robots in this way (including our robot). In this case, you should disable the use of such modules for our links.


       4. Check if the encoding specified in the page's meta tags matches the windows-1251 encoding. If the encoding is different, make sure it is also specified in the code calling the links that you insert on the pages. For example, if your site uses UTF-8 encoding, change the following line in the link output code:


      <?php

          $client = new LINKS_client();

      ?>

      to:

      <?php

          $o = array();

          $o['charset'] = 'UTF-8';

          $client = new LINKS_client($o);

          unset($o);

      ?>

      For any other encoding, the actions are similar. Also, make sure that the encoding is specified in the page's meta tags. In some browsers, automatic encoding detection is enabled, so to ensure that the encoding is correct, specify the encoding in the browser forcibly (usually it is set in View -> Encoding -> Specify the desired encoding).


         5. Check that the link's source code exactly matches what the system loads from the links.db file. Often, some CMS adds their styles to links or, for example, removes double spaces, etc. Our robot looks for an exact match, so if even one character has changed in the link, it will not be found.


          6. Possibly, your server incorrectly or in a non-standard format returns the HTTP_HOST environment variable (this problem often occurs if the site has aliases, mirrors, or is running on a non-standard port). To explicitly pass the correct value to the service script in the link insertion code (which you add to the site pages), change the following line:


          <?php

               $client = new LINKS_client();

          ?>

          to:

          <?php

              $o = array();

              $o['host'] = 'your_domain_name_without_http://';

              $client = new LINKS_client($o);

              unset($o);

          ?>


               7. It is possible that the problem is that there are unknown special characters in the page's text (usually displayed as "question marks") that cause an error when the robot parses the page (https://www.php.net/manual/ru/function.iconv.php) - that is, the robot sees part of the page before the special character. The only way to solve the problem is to clean the pages from these characters.


            After completing all of the above checks and recommendations, the next time our robot checks for the presence of links, they will most likely be found. Otherwise, you can contact us through the feedback form, and we will try to help you. Rechecks of link errors occur automatically several times a day.

            When contacting us, please provide the following:

            - The site where the problem occurred.

            - Whether the links are inside the <html> and <body> tags.

            - The encoding of the site (does it match the link insertion code).

            - Whether the links are in the links.db file.

            - Whether folder permissions are set to 777.

            - Whether links are displayed on the site.

            - Whether the host is specified or not (see above, point #6).

            - The error message displayed when clicking on ERROR status.

            For example:

            site.ru links are inside html and body UTF-8, changes have been made in links.db, permissions are set to 777, links are displayed on the site, the host is specified, and the error message "Links not found on the page" is displayed when clicking on ERROR status.


            Was this article helpful?