How to Optimize Your Website And Obtain a Google Page Speed of 98-100?

First, please backup your files before you start modifying anything I write in this post.

Thank You!

First, why you should follow my advice? Well, almost anyone can tell you that a fast website is a good website and a good website is a mobile and desktop 100% compatible website but, as a developer, you need to test your site with Google’s Page Speed tool(…).

Obtaining a good grade there can help your search engine traffic… So, what Google Page Speed score your project gets?

I’ve done a few projects with 98-99 out of 100, and a few with perfect 100.

I will list here a few “secrets” I used to boost my grade from 68/100 to 99/100.

1. Use only inline CSS

You need to use only inline css, period. Don’t link to any external frameworks(Bootstrap, etc.), don’t link to any Google Fonts file, to any particular style…

If you want to be productive, you ca use PHP to include_once(“”); your css files into the interpreted file.

If you want to use fontawesome or Google Fonts, you can put fontawesome file before you close your </body> tag.

You can also modify the Google Fonts .css file and include it inline into your source via PHP. Also, you can remove all the Vietnamese or Greek fonts from the Google Fonts file and use only the Latin style, works with english projects and most of the languages.

2. Insert the .js files at the end of the file

This is no secret that, inserting the .js files before you close </body> tag can get you a good Page Speed grade.

3. Use Server Side compression(gzip)

This is a pretty easy step, I provided instructions here on another post on how to do that.

4. Optimize images

Don’t exaggerate with images, use a low resolution image thumbnail, I use only < 10kb images. Specify the width and height of the image. You can use a free online tool to reduce the size of the images.

5. Minify css, js and html

This step gives anyone a lot of work if you are updating your site constantly… You can use free online tools to minify your css, html and js code.

6. Reduce the Server Response Time

Don’t load your server with requests, use, as much as you can only static content or make Ajax requests to content.

Bonus Point!

Transform your favicon in BASE64 text and include the code via PHP and get rid of a few connections that can slow down your website… I use this tool to convert my favicons:…


Hope this experience helps, try and play with this list and tell me your result.

Take a look at a sample page that I’ve recently made and got a great score:…

CSS/form input with width: 100% goes outside parent’s bound

There is a pretty simple solution for this problem:

(Method of specifying whether or not an element’s borders and padding should be included in size units)

Responsive background image in card-header (Bootstrap 4)

UPDATE – since this post got so much heat, I made a simple CSS & HTML only panel with responsive image and card-header, see here.

This is a Bootstrap 4 version of the Responsive Background Image in Panel Heading (Bootstrap). Since they changed the panel class with the card class in Bootstrap 4, you just need to change the old Bootstrap 3 class names… here is my code and demo.

Here is the live demo.

Responsive background image in panel heading (Bootstrap)

Usually, on my freelance projects I use a beautiful responsive Bootstrap panel to display certain information like photos, offers, contact info, profile info and so on. I find very useful to play with the variables and see particular results depending on your cover image size and text that you need to display in the panel.

The structure is pretty simple, we have a simple Bootstrap style class logic that displays our panel and some custom css that we need to add to modify some settings like removing the standard Bootstrap border and rounded corners.

Here is the CSS:

HTML code:

I limited the width of the panel to see how it looks, usually, I use 2-3 panels in a row to display certain informations but, in my opinion, this type of panel looks better when is not displayed on a full width style.

Take a look at the results here.

Fixed Navbar that Disappears on Scroll Down (jQuery + Bootstrap)

In this post we will create a fixed navbar that disappears when the user scrolls down and reappears upon scrolling up using Bootstrap and jQuery.

Try it Yourself / Demo

You can alter the fadeIn() and fadeOut() or change them to other jQuery effect.

Change the background-color and the hover color and so on from the CSS file to fit your project needs and aesthetics.

CSS Image Sprites Example and How To Use Them

In this example I will show you how you can use only one image for your social media sharing nav-bar. Most of us use this sharing buttons-nav-bar so that our users can share our articles and content to their social media profiles.
Using this style of implementation can bring a few benefits to our user experience – if you are using this on a popular website with lots of requests – the css image sprite can lower your server requests so, instead of having 6 requests for every logo that we use in our example, we use just one request and we use CSS to display each image in a separate place on our page.

Instead of using three separate images, we use this single image ("sprite.png")

Youtube is just one of the heavily trafficked sites on the internet that uses sprites using one image to display all kinds of small images used in different places on the site:

CSS Image Sprites


Try it Yourself / Demo

Twitter Cards Guide (with examples)

What Are Twitter Cards?

Twitter Cards allow you to go beyond text and attach rich media experiences such as photos or videos to your tweets. They’re perfect for introducing new products, sharing articles and increasing conversions. Without leaving Twitter, your followers can make an impression on your content and think before clicking on your card.

Types of Twitter Cards

This are the five types of Twitter Cards:

  • 1.   Summary Card   (title, description, thumbnail, and Twitter account attribution)
  • 2.   Summary Card With Large Image   (similar to a Summary Card, but with a featured large image)
  • 3.   App Card   (Card to detail a mobile app with direct download)
  • 4.   Player Card   (Card to provide video/audio/media)

1. Summary Card

The Summary Card, limited to 140 characters — can be used for many kinds of web content, from blog posts to products and restaurants. This type of card was specially designed to give the reader a preview of the content before clicking through to your website.

2. Summary Card With Large Image

The Summary Card with Large Image features a large, full-width image. This type of card was designed to give the reader a rich photo experience, and clicking on the image brings the user to your website.

3. App Card

App Cards work better on mobile devices, the cards display limited info on desktops.

The App Card was designed to represent mobile applications on Twitter and to drive installs. The App Card allows to display a name, description and icon, and also to highlight attributes such as the rating and the price.

4. Player Card

The Player Card supports streaming media experiences by putting a live video or audio player inside your Tweet.

More info about Twitter Player Card here.

Why it’s ok to replace “http://” with “//” in a script

At least a dozen heavily trafficked sites use only // instead of https:// or http:// when linking to a *.css file, *.js file and sometimes, even when linking to other resources like external links. It seems to me that both versions are correct, using only // when linking to a script or style file. A relative URL without a scheme (http: or https:) is valid, per RFC 3986: “Uniform Resource Identifier (URI): Generic Syntax”, Section 4.2.

Sites like Youtube, Google, CNN, WordPress, TechCrunch, Twitter, Reddit use only // instead of http:// or https:// when linking to resource files or external links.

I can’t provide here the impact of excluding a few characters but, for heavily trafficked sites can make a difference I suppose eliminating the loading time and bandwidth.

Try it Yourself / Live DEMO