Yes, OpenGL didn't change.
The recommended way is to load the image data with
sf::Image or similar from disk in a separate thread, which is one of the slowest parts, as you do IO and decompression, and then move the image data to a texture in the main thread.
This should speed up things noticeably.
And of course making sure you generally use texture atlases withe texture rect on a sprite, instead of loading many small textures. This will prevent you from having to load and handle many textures and will reduce texture switches, that are a bit expensive.