Improve SEO for my django website.
1. Generate meta tags in the head:
<head>
{% if items.details %}
<title>{{items.title}}</title>
<meta property="og:title" content="{{items.title}}">
<meta name="description" content="{{items.details|safe|striptags}}, {{items.al.als.als|lower}} and {{items.al.al|lower}}.">
{% else %}
<title>Have a problem</title>
<meta name="description" content="Common problems solution in IT, web network technology development, coding and software engineering areas.">
<meta property="og:title" content="Problem's database">
{% endif %}
2. To check the mobile optimisation use search.google.com/test/mobile-friendly
3. Mark up your text to have rich results. To test it use search.google.com/test/rich-results // I am not sure what mark up and structured data is about. It kind of some google meta data analog.
It makes me to put some other's website url into my webpage's tags properties. I don't like this idea.
4. Avoid grammar mistakes. Install spellchecker.
5. I need references from trusted pages (without rel=nofollow etc ).
6. Use pagespeed.web.dev to measure speed.
7. Images and description should have original value. In the future I have to generate it from the text automatically.
8. Use <section> tag above of <p> is a good idea.
Made a custom 404 page is an advantage but set noindex is mandatory.
9. Class names with a meaning.
If you unable to update sitemap file regulary it may hurt your SEO. So in this case better to not create sitemap at all.
10. Links are not traceable. Means I have <a> tag without href. Change them to <span>.
11. Create robot.txt in url.py:
urlpatterns += path('robots.txt', TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
Add robots.txt in template folder.
12. Use pagespeed.web.dev to analize website.
13. Add <link rel="canonical" href="https://outleys.site">
14. Set all buttons size not less then 48x48px // set min-height: 48px
15. Set strong Content Security Policy to avoid XSS.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' " />
16. For images set width and height.
17. Set long cache time for static files.
18. Add lang attribute to html tag
19. Text not less then 12px
19. I have problem with PWA.
20. Doesn't set color for the address bar. Use <meta name="theme-color" content="#FF00FF"> // Its fancy stuf for android.
20.1. Then add web app manifest (manifest.json file). // <link rel="manifest" href="/manifest.json">
20.2. Add to manifest icons 192x192 and 512x512
21. Add apple touch icon <link rel="apple-touch-icon" href="/static/apl.png">
22. Add maskable icon to manifest. Use maskable.app/editor to create an icon.
23. Set background_color in manifest.
24. Set stat_url
25. Set display property to browser.
26. Add service worker.
26. Create file to register service worker register-sw.js // Type navigator.serviceWorker.register('/static/service-worker.js')
1. Delete unused parts js. Use devtools->More tools->Coverage
2. Made scripts to load async <script src="" async>
2.1. How to made scripts async in joomla?
2.1.1. Try to in template index.php: $this->addScript('https://wsite.com/templates/mytemplate/js/script.js', 'text/javascript', false, true);
2.1.2 Go to /libraries/joomla/document/renderer/html/head.php and comment out string with if($strAttr['async']){}
2.1.3. Add $buffer .= ' async> </script> // no
2.1.4. Add async in all places with <script // It works but I've got problems with admin and I've got a lot of errores when jquery is async.
2.15. Override class in template:
use Joomla\CMS\Plugin\CMSPlugin;
class PlgSystemExample extends CMSPlugin
{
protected $app;
public function onBeforeCompileHead()
{
foreach ($this->app->getDocument()->_scripts as &$script)
{
$script['async'] = true;
}
}
}
27. Add structured data tags. Consult with schema.org/Recipe
27.1. Add wrap tag like <article itemscope itemtype="https://schema.org/Recipe">
27.2. Add varios properties tag like <h1 itemprop="name">Pancakes</h1>
28. Made breadcrumbs rich itemscope itemtype="http://schema.org/BreadcrumbList
29. Add all possible microdata from schema
1. I have to find out what cause CLS.
1.1. It may be an image without dimensions. It is not my case.
1.2. Maybe it is hiding menu. Try to fix menu on screen then check CLS.
30. Add to archive.org
31. Add to signatures to forums.
32. Twitter, Insta, FB, Utube, responses like mail, pintrest, reddit, blogspot, photohostings(flickr), wordpress.com, medum, fl.ru , habr, twich, ok, tg, habr
33. hh
34. Add to Chrome bookmarks
35. Make inner interlinking
36. Try to refer trusted resource.
1. Try QA style
2. Use noscript ta
3. Add to all ya services
4. Redirect to https
5. Redirect from www to https
5.1. Go to .htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
// I get 500 error
5.2. Try to :
RewriteEngine On
...here goes some existed redirect from http to https then new rule
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule .* https://outleys.site%{REQUEST_URI} [R,L]
6. Split big text into chapters
7. Meet html5 standard
8. Enforce end / redirect:
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://outleys.site/%1 [R=301,L]
9. Microtags for images
10. Keep url short
11. Use ya recomended request
12. Add <meta http-equiv="content-type" content="text/html; charset=UTF-8">
13. Check grammar
14. Minimize JS usage for mobile
15. Add og metatags
16. Use class names with http://microformats.org/wiki
17. Take care of tables responsiveness
18. One article one theme
19. Analyze competitors.
20. Experiment with key freq
21. Good to have translations. It is for sure like <link href="https://outleys.site/ru" rel="alternate" hreflang="ru-RU">
22. Title matter much more then H1 and description.
23. To improve user experience add more images to articles with bad stat.
24. Load images async
25. Try to add some LGBTQ-friendly stuff.
25.1 Use "non-binary" term.
25.2. Add lgbtq images.
25.3. Add some articles with title contained LGBTQ+ freindly something. And add this meta to main page.
25.4. Use meta-tags "gay", "lesbian", "transgender".
1. I have to figure out how to avoid.
1. New site not indexed by google. Bing writes "url can't be shown bcuz some problems".
2. I have to find the reason. Try transparencyreport.google.com/safe-browsing/search // sites which is halfyear old pass. Sites which is younger "have no data" // May be the problem with age but I have to proceed investigation.
3.
1. High freq to main level, average freq to category, low freq to article
1. Add company
2. Add author microdata
Try foreign server
3. Page has no logical tab order
4. Interactive controls are keyboard focusable.
5. Interactive elements indicate their purpose and state.
6. The user focus is directed to new content added to the page.