How to SELECT most common (viral) from a table and LIMIT results for pagination?
ORDER BY likes DESC should be used to get the highest likes first.

The second page is going to have LIMIT 10,10.

With a likes table as it is, its going to be hard to get quick performance out of this. Getting the number of likes into the main articles table would help get a quicker results of this if they are used often. If you need to use both perhaps an INSERT trigger on the likes table.

Once you have a likes column in articles, it will need an index on it.

Then your query becomes simply:

SELECT *
FROM articles
ORDER BY likes DESC
LIMIT 10


The second page way is:

SELECT *
FROM articles
ORDER BY likes DESC
LIMIT 10,10


If you got too many pages, you'll eventually start to be slow down as getting 10 pages at an offset needs to walk down to that offset first.